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