假设我选择了一些东西:
var $nodeAll = $('.sortable');
然后我想从中选择一些,并将它们添加到另一个名为 $node 的变量中,我想要选择的是父级没有名为“node”的类:
$nodeAll.each(function () {
if ($(this).parents('.node').length == 0) {
//var $node=? what should I do?
}
});
谢谢
最佳答案
首先,您不能有多个带有 id="sortable"
的元素,因此我假设您要将其更改为 class="可排序”
。
您可以将 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);
});
关于jquery - 如何在数组变量中选择不同的值,并添加到 jquery 中的另一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9678767/