首先,你不能有一個以上的元素與id="sortable"
,所以我會假設你要將它改爲class="sortable"
。
您可以使用帶有自定義過濾器功能的jQuery .filter()
,也可以使用.not()
。
使用.not()
:
var $nodeAll = $('.sortable');
var $nodeLess = $('.node .sortable');
var $nodeFree = $nodeAll.not($nodeLess);
使用.filter()
使用自定義功能:
var $nodeAll = $('.sortable');
var $nodeFilter = $nodeAll.filter(function() {
return($(this).parents('.node').length == 0);
});
如果您知道.sortable
項目將永遠不會有.node
本身,那麼這是一個稍微比更有效以前版本爲.closest()
可能比.parents()
更有效,但.closest()
將首先在起始節點上查找,而.parents()
從第一個父項開始,並且不首先查看當前節點:
var $nodeAll = $('.sortable');
var $nodeFilter = $nodeAll.filter(function() {
return($(this).closest('.node').length == 0);
});