JavaScript - 为无序列表中所有禁用的 <A> 标签添加类

标签 javascript

我想将样式类添加到未禁用的无序列表中的任何超链接。有人能帮我吗?我已经让这段代码运行 onload

function ApplyCSSToDisableElements() {

        var a = document.getElementById('Pager').getElementsByTagName('a');
        for (var i = 0; i < a.length; i++) {

                if (a.disabled == true) 
                {
                    alert("disabled");
                }
                else
                {
                    alert("Not disabled");
                }
        }
    }

这是列表:

<ul id="Pager" class="center">                            
<li><a disabled="disabled">1</a></li>
<li><a >2</a></li>
<li><a disabled="disabled">3</a></li>
<li><a disabled="disabled">4</a></li>
<li><a >5</a></li>
<li><a disabled="disabled">6</a></li>
</ul>

但是,我不断收到相同的警报。 任何帮助将不胜感激。

最佳答案

您正在查看错误的变量 - 您应该查看 a[i] , 不是 a .

除此之外,.disabled <a> 上不存在属性元素 - 您添加了一个非标准属性,因此您需要通过循环和使用 a[i].getAttribute() 来测试它是否存在。 ,或者更好的是仍然使用 parent.querySelectorAll('a:[disabled="disabled"]')而不是 getElementsByTagName()获取预过滤的元素列表。

无论哪种方式,真正的解决方案是在您的样式表中完全不使用任何代码来执行此操作:

#Pager a:[disabled="disabled"] {
    ...
}

这样会更有效率。

关于JavaScript - 为无序列表中所有禁用的 <A> 标签添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41850350/

相关文章:

javascript - 为 google-maps-api-3 制作热图动画

javascript - RequireJS 异步加载导致用户体验(UX)不佳?

javascript - Angular JS,未在表(ng-repeat)上显示套接字数据

javascript - THREE.js 中的多个 .obj 模型和检测点击的对象

javascript - jQuery - CSS 转换完成后运行函数

Javascript - 通过引用传递变量问题

javascript - 如何处理 DOM 和 Controller 之间的交互?

javascript - 在从对 AWS Secrets Manager 的 API 调用返回数据后导出 Node 文件中的数据

javascript - 使用 Javascript 展开和折叠 Div

JavaScript - window.location - 权限被拒绝 - 跨站点脚本