首先,你不能有一个以上的元素与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);
});