我有以下的自定義標籤/指令:有沒有辦法通過屬性來獲取元素?
<tile class="ng-scope gridster-item" tilevalue="1" gridster-item="tile" row="0" col = "0" ng-repeat="tile in selectedTiles"> </tile>
我想將焦點設置此元素上。有沒有辦法通過屬性名稱獲取元素,以便我可以設置焦點?
我有以下的自定義標籤/指令:有沒有辦法通過屬性來獲取元素?
<tile class="ng-scope gridster-item" tilevalue="1" gridster-item="tile" row="0" col = "0" ng-repeat="tile in selectedTiles"> </tile>
我想將焦點設置此元素上。有沒有辦法通過屬性名稱獲取元素,以便我可以設置焦點?
使用普通的javavascript,您可以使用.querySelector
和.querySelectorAll
來獲取所需的元素,就像在CSS中一樣。
var element = document.querySelector('[class="ng-scope gridster-item"]')
var element = document.querySelector('[gridster-item="tile"]')
然後,你可以自由地使用任何你想要的element
。
如同您爲jquery
標記的那樣,如果只有一個名爲「tile」的元素,您可以使用基於類的元素名稱$("tile")
或$(".ng-scope.gridster-item")
。
否則,使用任何屬性與$("[attribute_name='attribute_value']")
注意此可以返回對象的陣列。例如,獲取元素本身使用$("[attribute_name='attribute_value']")[0]
。
使用document.querySelector
或document.querySelectorAll
(無jQuery的需要)
var elements = document.querySelectorAll("[gridster-item]");
或:
var elements = document.querySelectorAll("[gridster-item=tile]");
將焦點設置:
elements[0].focus();
querySelector
返回的第一個元素,querySelectorAll
返回一個數組像NodeList
。
將注意力集中在表單元素上是可以理解的。你有自定義元素,並且它具有中繼器,你在這個自定義元素中有什麼? – Jai