Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将div克隆到obj并对其进行操作_Jquery_Html_Clone - Fatal编程技术网

Jquery 将div克隆到obj并对其进行操作

Jquery 将div克隆到obj并对其进行操作,jquery,html,clone,Jquery,Html,Clone,我有以下代码。目标是取消隐藏包含隐藏类的div,并将其排序到列表的顶部。但是,我希望能够将#master div克隆到一个对象中,例如var x=$(“#master”),并且我希望能够在该对象上运行多个操作,而不是硬编码代码 <style> .hidden { display: none; } </style> <div id="master"> <div class="item" id="z"> <div>

我有以下代码。目标是取消隐藏包含隐藏类的div,并将其排序到列表的顶部。但是,我希望能够将#master div克隆到一个对象中,例如var x=$(“#master”),并且我希望能够在该对象上运行多个操作,而不是硬编码代码

<style>
     .hidden { display: none; }
</style>

<div id="master">
<div class="item" id="z">
    <div>
        <span>z</span>
    </div>
</div>
<div class="item" id="y">
    <div>
        <span>y</span>
    </div>
</div>
<div id="x" class="item hidden">
    <div>
        <span>x</span>
    </div>
</div>
<div id="w" class="item hidden">
    <div>
        <span>w</span>
    </div>
</div>
相反,我想做一些更像这样的事情

var cloneObj = $('#masterlist');
cloneObj.find('.hidden').removeClass('hidden').sort(asc_sort);
$('#master').empty().html(cloneObj);     
我不想在直接代码上做这样的事情

var x = `$('#masterlist .hidden').css('display', 'block').clone().sort(asc_sort); 
$('#master').empty().html(x);
我想直接操作obj

如果您只想“取消隐藏包含隐藏类的div并将其排序到列表顶部”,您可以执行以下操作:

$('.hidden').removeClass('hidden').prependTo('#master');
退房:

此外,一个元素上不能有两个
class
属性。在html中:

<div class="item" id="w" class="hidden">


不正确。

您可以根据其类别对master中的所有
div进行排序:

var master = $('#master');
$('div', master).sort(function (a, b) {
    if ($(a).hasClass('hidden')) {
        return -1;
    }

    return 1;
}).appendTo(master).removeClass('hidden');
如果需要删除隐藏的类,可以将其链接到
appendTo(master)
之后


请参见

对不起,应该更清楚一些。我已经更新了原始帖子,比如说我不需要对它进行排序。如果我只想在主变量中找到所有带.hidden的div,我该怎么做?@archytect
$('div.hidden','#master')
会给你所有
div
s带
class='hidden'
的div
id='master'
@archytect删除
div.hidden
中的空格;应该是
div.hidden
<div class="item" id="w" class="hidden">
var master = $('#master');
$('div', master).sort(function (a, b) {
    if ($(a).hasClass('hidden')) {
        return -1;
    }

    return 1;
}).appendTo(master).removeClass('hidden');