我正在尝试使用AngularJS来查询我的视图的DOM。我需要获得所有具有'data-placement'属性的元素,其值为'top'。在jQuery中,我会这样做:
var elements = $('[data-placement="top"]');
但是,我不知道如何使用AngularJS。有人能告诉我怎么做吗?
谢谢!
答案 0 :(得分:5)
在AngularJS中,你不会从控制器直接进行DOM操作,你应该为它创建一个指令。在指令中,您可以根据需要使用JQuery。
无论如何,我认为您可以将angular.element()
与JQlite选择器一起使用,这里是angular.element的文档。
示例:
// find('#id')
angular.element(document.querySelector('#id'))
答案 1 :(得分:1)
从您的问题中我了解到您希望找到需要特定条件的属性元素,在这种情况下我们可以使用$document
。
您可以找到有关它的更多信息here。
所以满足你的要求,你可以找到它。
$document.find("[attribute-name='attribute-value')");
这将返回包装在jQuery或jqLite中的元素对象。但要使用它,您需要将$document
注入控制器。所以你继续使用角度相关的操作。
另一种方法是angular.element
。
angular.element.find("[attribute-name='attribute-value')");
但是这将返回包含原始DOM元素或HTML字符串作为jQuery元素的元素。你可以找到更多关于它的信息here
我更喜欢使用$document
,因为可以使用第一种方法完成角度操作。