获得AngularJS指令中的第一个孩子

ros*_*lze 9 angularjs angularjs-directive

我想在Angular指令中获取并修改给定元素的第一个子元素.

<div class="wanted">
</div>
<div class="not-wanted">
</div>
<div class="not-wanted">
</div>
Run Code Online (Sandbox Code Playgroud)

我已经试过了

elm.children('.wanted')
Run Code Online (Sandbox Code Playgroud)

但后来我的指令修改了所有孩子.我该怎么做才能正确?

Tom*_*ski 8

你可以使用:

elm.children().first();
Run Code Online (Sandbox Code Playgroud)

要么:

elm.children(':first')
Run Code Online (Sandbox Code Playgroud)

两者都会产生同样的效果.第二个是性能稍高.

  • 在AngularJS(jqlite)中,子节点不支持选择器,即jQuery.AngularJS也不支持first(),也就是jQuery. (5认同)

Don*_*nal 5

Angular包括jqLit​​e.JqLite不接受children()的选择器- 这就是你获得所有直接子元素的原因.

element.children() - 不支持选择器


Pet*_*erg 5

我用: element.children().eq(0)

children() - 获取匹配元素集中每个元素的子元素

eq() - 将匹配元素集减少到指定索引处的元素集