AngularJS-按属性值查找元素

AngularJS-按属性值查找元素,angularjs,dom,Angularjs,Dom,我正在尝试使用AngularJS查询视图的DOM。我需要获取所有属性为“dataplacement”且值为“top”的元素。在jQuery中,我会这样做: var elements = $('[data-placement="top"]'); 但是,我不知道如何使用AngularJS。有人能告诉我怎么做吗 谢谢大家! 在AngularJS中,您不会从控制器直接进行DOM操作,您应该创建一个指向该操作的指令。在指令中,您可以根据需要使用JQuery 无论如何,我认为您可以将angular.ele

我正在尝试使用AngularJS查询视图的DOM。我需要获取所有属性为“dataplacement”且值为“top”的元素。在jQuery中,我会这样做:

var elements = $('[data-placement="top"]');
但是,我不知道如何使用AngularJS。有人能告诉我怎么做吗


谢谢大家!

在AngularJS中,您不会从控制器直接进行DOM操作,您应该创建一个指向该操作的指令。在指令中,您可以根据需要使用JQuery

无论如何,我认为您可以将
angular.element()
与JQlite选择器一起使用,以下是的文档

例如:

// find('#id')
angular.element(document.querySelector('#id'))

从您的问题中,我了解到您希望查找具有需要特定条件的属性的元素,在这种情况下,我们可以使用
$document

angular.element.find("[attribute-name='attribute-value')");
你可以找到更多关于它的信息

因此,根据您的要求,您可以通过以下方式找到它

$document.find("[attribute-name='attribute-value')");
这将返回用jQuery或jqLite包装的元素对象。但要使用它,您需要将
$document
注入控制器。所以你可以用它继续进行角度相关的运算

另一种方法是
angular.element

angular.element.find("[attribute-name='attribute-value')");
但这将返回包含包装的原始DOM元素或HTML字符串的元素作为jQuery元素。你可以找到更多关于它的信息


我更喜欢使用
$document
,因为角度操作可以使用第一种方法来完成。

AngularJS不这样做。jQuery就是这样做的。在您的应用程序中加载jQuery,它应该可以正常工作。这并不完全正确:您可以使用自定义指令来实现这一点,这将是一种“角度”方式。您可以发布更多关于您的用例的信息吗?角度开发的一条黄金法则是永远不要从控制器接触DOM。所以用几个问题来回答你的问题:你把这个javascript代码放在哪里,你打算用这些元素做什么?如果此代码位于自定义指令之外的任何其他位置,您可能需要后退一步,考虑以另一种方式执行此操作。