我正在尝试使用AngularJS来查询我的视图的DOM。我需要获得所有具有“数据放置”属性的值为“top”的元素。在jQuery中,我会这样做:AngularJS - 通过属性值查找元素
var elements = $('[data-placement="top"]');
但是,我不知道如何与AngularJS做到这一点。有人能告诉我如何做到这一点?
谢谢!
我正在尝试使用AngularJS来查询我的视图的DOM。我需要获得所有具有“数据放置”属性的值为“top”的元素。在jQuery中,我会这样做:AngularJS - 通过属性值查找元素
var elements = $('[data-placement="top"]');
但是,我不知道如何与AngularJS做到这一点。有人能告诉我如何做到这一点?
谢谢!
在AngularJS中,您不会直接从控制器执行DOM操作,您应该为此创建一个指令。您可以根据需要在指令内部使用JQuery。
无论如何,我认为你可以使用angular.element()
与JQlite选择器,这里的文档angular.element。
例子:
// find('#id')
angular.element(document.querySelector('#id'))
从你的问题我明白,你想找到需要的,我们可以使用$document
这种情况下,某些条件atrributes元素。
你可以找到更多关于它的信息here。
所以来到您的要求,你可以找到它。
$document.find("[attribute-name='attribute-value')");
这将返回包装在jQuery或jqLite中的元素对象。但要使用它,您需要将$document
注入您的控制器。所以你继续角度相关的操作。
另一种方法是angular.element
。
angular.element.find("[attribute-name='attribute-value')");
但是,这将返回与包装原始DOM元素或HTML字符串作为jQuery元素的元素。你可以找到更多关于它的信息here
我更喜欢使用$document
作为Angular操作可以使用第一种方法完成。
AngularJS不这样做。 jQuery这样做。在您的应用程序中加载jQuery并且它应该可以工作 – Abilash
这并非完全正确:您可以使用自定义指令来做到这一点,这将是“角度”做事的方式。你能发布一些关于你的用例的更多信息吗? –
Angular开发的黄金法则是永远不要触摸控制器的DOM。所以要回答你的问题有几个问题:你在哪里放置这个JavaScript代码,你打算如何处理这些元素?如果这段代码不在自定义指令中,你可能想退后一步,考虑以另一种方式做这件事。 –