【发布时间】:2014-03-27 23:12:15
【问题描述】:
我有以下代码。目标是取消隐藏包含 hidden 类的 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>
<script>
function asc_sort(a, b) {
return ($(b).text()) < ($(a).text()) ? 1 : -1;
}
</script>
在基本代码中我想做类似的事情
// clone #master into #temp for manipulating
$('#master').clone().append($("#temp"));
// unhide all divs with class of hidden
$('#temp .hidden').css('display', 'block');
// sort items alphabetically
$('#temp .item').sort(asc_sort);
// replace contents of #master with newly sorted #temp
相反,我想做更多类似的事情
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
【问题讨论】: