【问题标题】:How to get top level 'div(s)' only in parent and exclude the nested divs inside those elements如何仅在父级中获取顶级'div(s)'并排除这些元素内的嵌套div
【发布时间】:2016-10-31 04:13:13
【问题描述】:

我试图仅检索“行”下的顶级“div”,同时排除每个中的嵌套“div”。我的代码也抓取了嵌套的 div。

var container = $(event.target).closest('.row').children('div');
console.log(container);

输出:

<div class="ELEMENT I WANT ONLY">
    <div class="nested element I do not want">
        <div class="nested element I do not want">
        </div>
    </div>
</div>

我不相信我可以使用类作为选择器,因为类因元素而异。

我的目标是选择“行”和它下面的第一个“div”,以便我可以更改该 div 类中的引导列设置。不同的行有不同数量的 div 需要修改,因此如果存在,我需要获取比第一个更多的 div。

【问题讨论】:

  • $("div-element").not($(".div-element").childNode())?
  • 该代码获取任何div,它是具有类"row" 的元素的直接子元素。 divs 的后代是 DOM 树的一部分,所以它们自然会跟随它们。如果您对返回的元素进行操作,则只会影响所选的div。换句话说,container.addClass('yada') 只会将"yada" 类添加到那些子divs。
  • @MikeMcCaughan - 感谢您的解释,我不明白为什么它会返回 DOM 树的其余部分,并认为在我纠正此问题之前继续我的代码毫无意义。

标签: jquery


【解决方案1】:

试试

jQuery

var container = $(event.target).closest('.row').find(':first-children');

JS

var container = event.target.closest('.row').querySelector('div');

【讨论】:

    【解决方案2】:

    @Mike McCaughan 有正确的评论。我的代码很好,并且做了它应该做的事情,问题是我误解了它显示给我的结果。

    【讨论】:

      猜你喜欢
      • 2010-10-26
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      相关资源
      最近更新 更多