javascript - JQuery:不要在 child 中搜索

标签 javascript jquery data-binding

假设我不想找到所有具有 data-view 属性的元素,但我可以找到具有 data-view 的父元素其他 data-view 元素。我不希望 child 参与搜索,我想要 parent 。

$('[data-view]').each(function() {});

使用以下 HTML:

<body>
   <div data-view="app">
       <div data-view="hello1">
       </div>
   </div>
   <div data-view="job">

   </div>
</body>

它应该只返回 appjob 而不是 hello1。我在使用 .not 选择器时运气不好,它停止选择任何 [data-view] 元素。

有什么建议吗?

最佳答案

尝试:

var target_attr = "[data-view]";
$(target_attr).filter(function () {
    return !$(this).find(target_attr).length;
}).each(function () {
    // Whatever
});

演示: http://jsfiddle.net/gEVyk/1/

这将找到带有 data-view 的所有元素具有 0 个具有相同属性的 后代 的属性。在你的情况下,这是 hello1job .

如果您确定它们只是 <div> s,你应该使用div[data-view] .

这将找到具有 0 个具有相同属性的 parents 属性的所有元素:

var target_attr = "[data-view]";
$(target_attr).filter(function () {
    return !$(this).parents(target_attr).length;
}).each(function () {
    // Whatever
});

演示: http://jsfiddle.net/ue9w9/1/

在你的情况下,这是 appjob .

关于javascript - JQuery:不要在 child 中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16256440/

相关文章:

Javascript 使用each() 返回复选框的正确值

wpf - 使用属性触发器更改已绑定(bind)的属性

java - Android 数据绑定(bind)将参数传递给 onClick 方法

javascript - 使用 Angular JS 将远程数据添加到 Popover

jquery - 无法通过api调用暂停访问youtube嵌入式iframe

javascript - 为什么我的 JavaScript 函数无法执行?

javascript - 如果元素已经存在于容器中,我们如何使元素可拖放?

c# - 在 xaml 中声明数据模板时如何在代码中创建绑定(bind)

javascript - Javascript Package 关键字的用途是什么?

javascript - 整页水平滑动,有规律的垂直滚动