获取AngularJS指令中的第一个子项
我想获取并修改Angular指令中给定元素的第一个子元素获取AngularJS指令中的第一个子项,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我想获取并修改Angular指令中给定元素的第一个子元素 <div class="wanted"> </div> <div class="not-wanted"> </div> <div class="not-wanted"> </div> 但是我的指令修改了所有的孩子。 如何正确执行此操作?您可以使用: elm.children().first(); 或: 两者的效果相同。第二个更具性能。角度包括jqLite。JqLi
<div class="wanted">
</div>
<div class="not-wanted">
</div>
<div class="not-wanted">
</div>
但是我的指令修改了所有的孩子。
如何正确执行此操作?您可以使用:
elm.children().first();
或:
两者的效果相同。第二个更具性能。角度包括jqLite。JqLite不接受-的选择器,因此您将获得所有直接子元素
element.children()
-在指令的帮助下,不以角度方式支持选择器
<div ng-repeat="name in names">
<div check-render>{{name}}</div>
</div>
我使用:
element.children().eq(0)
children()
-获取匹配元素集中每个元素的子元素
eq()
-将匹配的元素集减少到指定索引处的元素集您是否尝试过css:第一个子元素选择器或使用更多代码更新问题JQLITE不接受子元素选择器()-这就是您获取所有直接子元素的原因。请看这里:I Get TypeError:elm.children(…)。first不是第一个的函数。您可以使用指令源更新您的问题,以及在html中使用它的方式吗?在AngularJS(jqlite)中,children不支持选择器,这是jQuery。AngularJS也不支持first(),这也是jQuery。这毫无意义。您的属性是custom render
,但您的指令绑定到checkRender
。另外,必须编写整个控制器/指令才能确定第一个子级是否存在?这似乎不是最好的方法。Angular jqLite也不接受用于查找的类选择器。“仅限于按标记名查找”。
elm.children(':first')
<div ng-repeat="name in names">
<div check-render>{{name}}</div>
</div>
angular.module('myApp').directive('checkRender', function ($timeout) {
return {
restrict: 'A',
link: function (scope, el, attrs) {
if(scope.$first)
alert('first called');
}
}
});