gpt4 book ai didi

javascript - 仅在 dom 中禁用该属性的情况下选择元素

转载 作者:行者123 更新时间:2023-12-02 23:53:56 24 4
gpt4 key购买 nike

我试图从Dom中获取元素,仅禁用“disabled =”disabled“”,然后使用angularjs应用一个值,为此我使用“getElementsByTagName”,发生的情况是我不知道如何仅选择禁用该属性的那些。我正在尝试将其应用到自定义指令中:

HTML:

                <deb-button 
base-path="assets\assets-angular"
textbtn="Primary"
colorbtn="primary"
disabled="disabled">
</deb-button>

JS

.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';
}
}
};

谢谢!

最佳答案

我建议使用 querySelector 而不是 getElementsByTag,例如,它允许您编写 CSS 样式选择器。

如果你只是想获得所有禁用的 deb 按钮,你可以这样做

var b = document.querySelectorAll('deb-button:disabled')

但是如果你想获取所有disabled属性值设置为disabled的元素

var b = document.querySelectorAll('deb-button[disabled="disabled"]');

但是如果您想使用 getElementsByTagName,您可以循环遍历 getElementsByTagName 的结果并过滤没有禁用属性的 deb-buttons

ES6:

var b = document.getElementsByTagName('deb-button').filter( e => e.getAttribute('disabled') === 'disabled' )

ES5:

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]) }
}

关于javascript - 仅在 dom 中禁用该属性的情况下选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55500168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com