我正在尝试通过 Javascript 更改页面中所有链接的样式。
我尝试了这两个但没有成功:
document.links.style.cursor = "wait";
document.getElementsByTagName(a).style.cursor = "wait";
我究竟做错了什么?
我正在尝试通过 Javascript 更改页面中所有链接的样式。
我尝试了这两个但没有成功:
document.links.style.cursor = "wait";
document.getElementsByTagName(a).style.cursor = "wait";
我究竟做错了什么?
var allLinks = document.links || document.getElementsByTagName('a');
for(var n=0;n<allLinks ;n++)
document.allLinks [n].style.cursor = "wait";
是document.links
一个元素数组,所以document.links.style.cursor = "wait"
等于[link1,link2].links.style.cursor = "wait"
。
关于document.getElementsByTagName(a)
:语法错误,您忘记了引号。正确的是document.getElementsByTagName("a")
var style = document.createElement("style");
document.head.appendChild(style);
try {
style.innerHTML = "a { cursor: wait; }";
}
catch (_ie) {
style.styleSheet.cssText = "a { cursor: wait; }";
}
当然,您也可以提前计划需要更改链接的可能性,并预加载这样的静态样式表:
.wait-links a { cursor: wait; }
然后,每当您将“等待链接”类添加到<body>
(或您喜欢的任何容器)时,<a>
标签都会受到影响。这比迭代更改其各自样式的元素(可能)要有效得多,尽管如果链接不多,它可能并不重要。
在我看来,为这些事情使用样式表是一种更好的做法。实际上,在这种情况下,最好不要将类称为“等待链接”,而是使用一些描述实际发生的事情的词或词。然后你的 JavaScript 代码只是通过添加(或删除)类来确定情况,样式表控制外观的变化。如果您决定在某些情况下需要链接更改颜色或变得不可见,您可以这样做,而无需在脚本中寻找样式更改。
使用 JQuery 和“.css”方法消除了对 for 循环的需要并简化了代码。
$('a').css("cursor","wait");