我需要一个 jQuery 函数,在搜索时根据其属性忽略(过滤掉)特定标签及其所有(孙)子标签。 更具体地说:我想找到具有属性 data-type="a"的标签,但前提是它的(祖) parent 之一没有属性 data-type="b"。 我想这不存在,我应该编写自己的 javascript 代码来搜索。我倾向于这样做,但我读到这很容易出错并且与浏览器不兼容?
最佳答案
jQuery 提供了一种名为 .grep()
的方法来完成此类操作(请参阅 docs )
var aTypes = $('[data-type="a"]')
aTypes = $.grep(aTypes, function(el, i) {
return $(el).parents('[data-type="b"]').length === 0
})
console.log(aTypes)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-type="a"></div>
<div data-type="a">
<div data-type="b"></div>
</div>
<div data-type="b"></div>
<div data-type="b">
<div data-type="a">Ignore Me</div>
</div>
<div data-type="a">
<div data-type="a"></div>
</div>
关于javascript - JQuery find() 可以选择忽略特定标签及其子标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43718751/