javascript - 如何在不使用 children() 的情况下从选择中排除子元素内的元素?

标签 javascript jquery selector parent-child

我有这样一个元素:

<div id="foo">
  <a href="#" class="some">click me</a>
  <div id="bar">
     <a href="#" class="some">click me too</a>
  </div>
</div>

我需要选择不在 bar 内的 a 元素。问题是我不能使用 children(),因为我的 foo 比上面的要复杂得多。

问题:
有没有一种方法可以从 foo 中选择“某些”元素并从 bar 中明确排除“某些”元素?

最佳答案

如果 anchor 元素可能并不总是 foo 的直接子元素,您可以使用 filter() 方法。

var anchors = $("#foo a").filter(function(){
    return !$("#bar").find(this).length;
});

工作示例 http://jsfiddle.net/v63tC/

关于javascript - 如何在不使用 children() 的情况下从选择中排除子元素内的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16164630/

相关文章:

javascript - d3.js:与表格和图表的数据绑定(bind)

反斜杠的 Javascript 字符串比较问题

jquery - 突出显示 p 标签,但不突出它旁边的标签

html - 无法使用 css first-child/nth-child 定位元素?

JQuery 选择器多个参数

Javascript——正则表达式字符串

javascript - 为什么JavaScript中Masking后得到的值不准确?

javascript - 从头开始制作 jquery 轮播

swift - 使用协议(protocol)中的方法

javascript - 使用 bootstrap 和 javascript 在文本框区域 onfocus 事件中添加图标