javascript - jquery 选择选定 div 嵌套的最外层 div

标签 javascript jquery html

我正在尝试使用 jQuery 选择一个 div,但忽略所有选择的 div,它们是所选 div 的子级。除了我匹配的 HREF 之外,divs 没有任何其他方法可以识别它们。例如:

outerdiv = $('a[href^="http://bizmate."]').closest('div');
outerdiv.prepend("This was selected")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Won't be selected
  <div>
    Powered by <a href="http://bizmate.in">Bizmate</a>
    <div>
      Powered by <a href="http://bizmate.in">Bizmate</a>
      <div>
        Powered by <a href="http://bizmate.in">Bizmate</a>
      </div>
    </div>
  </div>
</div>

<div>
  <div>
    Powered by <a href="http://bizmate.in">Bizmate</a>
  </div>
</div>

此代码选择所有 div,包括子项。我如何限制它只选择满足条件的最外层 div 而忽略也满足给定条件的子 divs

编辑:

目前,该示例将给出:

不会被选中
这是由 Bizmate 提供支持
这是由 Bizmate 提供支持
这是由 Bizmate 提供支持
这是由 Bizmate 提供支持

我希望结果是:

不会被选中
这是由 Bizmate 提供支持
由 Bizmate 提供技术支持
由 Bizmate 提供技术支持
这是由 Bizmate 选择的

最佳答案

这将根据在树下找到的链接数量过滤掉子节点,从而选择任何顶级父节点,而不管集群的数量或其确切结构:

var link = 'a[href^="http://bizmate."]',

outerdiv = $(link).filter(function() {

    var total = $(this).parents('div:last').find(link).length;

    if (total > 1) {
      var parent = $(this).closest('div').find(link).length;
      if (parent == total) return $(this);
    }
    else return $(this);

}).closest('div');

outerdiv.prepend("This was selected");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>Won't be selected
  <div>
    Powered by <a href="http://bizmate.in">Bizmate</a>
    <div>
      Powered by <a href="http://bizmate.in">Bizmate</a>
      <div>
        Powered by <a href="http://bizmate.in">Bizmate</a>
      </div>
    </div>
  </div>
</div>

<div>
  <div>
    Powered by <a href="http://bizmate.in">Bizmate</a>
  </div>
</div>

关于javascript - jquery 选择选定 div 嵌套的最外层 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33728519/

相关文章:

javascript - 在 JavaScript 中验证模板变量

javascript - jquery对ID为 '.'的DOM元素进行操作没有效果

javascript - 带有光标跟随器的 Canvas

javascript - Javascript 改变 DOM 是否总是导致 UI 更新?

javascript - 在 JavaScript 中将样式应用于多个 Div

javascript - 打开并创建新帖子按钮不起作用

javascript - 如何保留输入的输入值并用带有更新值的标签显示它

javascript - jQuery 从输入字符串中添加/删除文本

javascript - array.map 不是函数

javascript - 防止一段 html 引用同一页面上的其他标签/元素