我正在使用 this changing color script通过 j08691:
function flash() {
var text = document.getElementById('foo');
text.style.color = (text.style.color=='red') ? 'green':'red';
}
var clr = setInterval(flash, 1000);
我想调用<body>
标记和 <a>
来自 CSS 的标签不是 id。
对于 <body>
标记我这样做并且有效:
function flash() {
var text = document.body;
text.style.color = (text.style.color=='black') ? 'white':'black';
}
var clr = setInterval(flash, 1);
但它不适用于 <a>
标签。我尝试了以下变体:
var els = document.getElementsByTagName('a');
var links = document.getElementsByTagName('a');
代替 var text = document.getElementById('a');
并替换 text.style.color
与 links[i].style.color
或 links.style.color
但我不太确定我在那里做什么。
我想一次性更改所有链接的颜色。
最佳答案
您走在正确的轨道上 - getElementsByTagName
返回一个集合,因此只需循环遍历该集合:
function flash() {
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
links[i].style.color = (links[i].style.color=='black') ? 'white':'black';
}
}
setInterval(flash, 1000);
另请注意,setInterval
需要几毫秒,因此不建议使用 setInterval(x, 1)
。
关于javascript - 从 css 调用 <a> 标签到 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27673953/