我正在尝试通过 angularjs 查找 html 中的元素。
这是 HTML:
<button class="btn btn-primary multi-files" type="button">
<span>Choose multiple files</span>
</button>
<br/><br/>
<input ng-file-select type="file" multiple style="display: none"/><br/>
我试图通过类名多文件获取按钮元素,然后我尝试了
var multibutton = angular.element(element.getElementsByClassName(".multi-files"));
但是不行,又尝试了element.find
但它只适用于标签。
AngularJS中有没有可以通过id或类名获取元素的函数?
getElementsByClassName
是 DOM 文档上的一个函数。它既不是 jQuery 也不是 jqLite 函数。
使用时不要在类名前添加句点:
var result = document.getElementsByClassName("multi-files");
将其包装在 jqLite 中(如果 jQuery 在 Angular 之前加载,则将其包装在 jQuery 中):
var wrappedResult = angular.element(result);
如果您想从element
在指令的链接函数中,您需要访问 DOM 引用而不是 jqLite 引用 -element[0]
代替element
:
link: function (scope, element, attrs) {
var elementResult = element[0].getElementsByClassName('multi-files');
}
或者,您可以使用document.querySelector
函数(如果按类别选择,则需要此处的句点):
var queryResult = element[0].querySelector('.multi-files');
var wrappedQueryResult = angular.element(queryResult);
Demo: http://plnkr.co/edit/AOvO47ebEvrtpXeIzYOH?p=preview
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)