我有一个角度指令,我需要找到所有带有'.selected'类的孩子,但它不起作用。
element.parent().children()
:工作正常
element.parent().find('div')
:工作正常
element.parent().find('.selected')
:一无所获。
如何选择<div class="child selected" test></div>
元素?
指令:
app.directive('test', function() {
return function(scope, element, attrs) {
angular.element(element).bind('mouseenter', function() {
$('.parent').css('background-color', 'red');
element.parent().find('.selected').removeClass('selected');
element.addClass('selected');
});
}
});
HTML:
<div class="parent">
<div class="child selected" test></div>
<div class="child" test></div>
<div class="child" test></div>
</div>
答案 0 :(得分:2)
如果您依赖于jqLite
lite版本的jquery ,那么您必须浏览angular.elements的文档,这些文档可以告诉您它有某些限制当你使用.find()
时,这就是它的限制:
它只能找到带有标签名称的元素。
来自.find()
的文档:
jqLite是一个微小的API兼容的jQuery子集,它允许Angular以跨浏览器兼容的方式操作DOM。 jqLite仅实现最常用的功能 ,目标是占用空间非常小。
find() - 仅限于按标签名称
进行查找