一尘不染

如何通过类名或ID获取元素

angularjs

我正在尝试通过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或类名获取元素的函数?


阅读 430

收藏
2020-07-04

共1个答案

一尘不染

getElementsByClassName是DOM文档上的函数。它既不是jQuery也不是jqLit​​e函数。

使用时不要在类名前添加句号:

var result = document.getElementsByClassName("multi-files");

将其包装在jqLit​​e中(如果在Angular之前加载jQuery,则包装在jQuery中):

var wrappedResult = angular.element(result);

如果要从element指令的链接函数中进行选择,则需要访问DOM引用而不是jqLit​​e引用- 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);

演示: http
//plnkr.co/edit/AOvO47ebEvrtpXeIzYOH?p =
preview

2020-07-04