Javascript 仅当dom中的元素禁用了属性时才选择它们
我试图从Dom only disabled=disabled中获取元素,然后使用angularjs应用一个值,为此我使用getElementsByTagName,结果是我不知道如何只选择那些属性为disabled的元素。 我正在尝试将其应用于自定义指令: HTML: 谢谢大家! 我建议使用querySelector而不是getElementsByTag,例如,它允许您编写CSS样式选择器 如果你只是想得到所有禁用的deb按钮,你可以这样做Javascript 仅当dom中的元素禁用了属性时才选择它们,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我试图从Dom only disabled=disabled中获取元素,然后使用angularjs应用一个值,为此我使用getElementsByTagName,结果是我不知道如何只选择那些属性为disabled的元素。 我正在尝试将其应用于自定义指令: HTML: 谢谢大家! 我建议使用querySelector而不是getElementsByTag,例如,它允许您编写CSS样式选择器 如果你只是想得到所有禁用的deb按钮,你可以这样做 var b = document.querySelect
var b = document.querySelectorAll('deb-button:disabled')
但是,如果要获取所有将“禁用”属性值设置为“禁用”的元素
但是如果您想使用getElementsByTagName,您可以循环使用getElementsByTagName的结果,并过滤不具有disabled属性的deb按钮
ES6:
ES5:
好的,由于您使用的是指令,因此我更愿意以这种方式使用选择器: 函数链接范围、元素、属性{ angular.elementelement.querySelectorAll'deb-button:已禁用' }
这只是另一种方式。其他按钮不是当前按钮吗?还是只有当前的一个?它们是否都驻留在一个控制器实例中?
.directive('debButton', function () {
return {
restrict: 'EA',
templateUrl: function (element, attrs) {
return attrs.basePath + "/templates/debbutton.html";
},
scope: {
textbtn: '@',
colorbtn: '@',
isdisabled: '@'
},
controller: ['$scope', function ($scope) {
var b = document.getElementsByTagName('deb-button');
if (b) {
console.log(b);
}
}],
link: function ($scope, colorbtn, isdisabled) {
if (!$scope.colorbtn) {
$scope.colorbtn = 'primary';
}
}
};
var b = document.querySelectorAll('deb-button:disabled')
var b = document.querySelectorAll('deb-button[disabled="disabled"]');
var b = document.getElementsByTagName('deb-button').filter( e => e.getAttribute('disabled') === 'disabled' )
var a = document.getElementsByTagName('deb-button');
var b = [];
for (var i= 0; i < a.length; i++){
if (a[i].getAttribute('disabled') === 'disabled') { b.push(a[i]) }
}