我正在嘗試使用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代碼,你打算如何處理這些元素?如果這段代碼不在自定義指令中,你可能想退後一步,考慮以另一種方式做這件事。 –