我正在尝试通过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或者classname来获取元素吗?
发布于 2014-05-12 20:41:24
您不必在getElementsByClassName
中添加.
,即
var multibutton = angular.element(element.getElementsByClassName("multi-files"));
但是,在使用angular.element
时,您必须使用jquery样式选择器:
angular.element('.multi-files');
应该能行得通。
此外,from this documentation“如果jQuery可用,angular.element是jQuery函数的别名。如果jQuery不可用,angular.element将委托给Angular的内置jQuery子集,称为"jQuery lite”或“jqLite”。“
发布于 2015-03-12 22:21:16
@tasseKATT的答案很好,但是如果你不想做一个指令,为什么不使用$document
呢
.controller('ExampleController', ['$scope', '$document', function($scope, $document) {
var dumb = function (id) {
var queryResult = $document[0].getElementById(id)
var wrappedID = angular.element(queryResult);
return wrappedID;
};
发布于 2014-05-12 21:10:56
如果您只想通过按钮的类名并仅使用jQLite来查找按钮,则可以执行以下操作:
var myListButton = $document.find('button').filter(function() {
return angular.element(this).hasClass('multi-files');
});
希望这能有所帮助。:)
https://stackoverflow.com/questions/23609171
复制相似问题