我试图让用户每次点击页面上的链接时都会弹出一个警告框-这样做只是为了更好地理解概念-但我无法让它对所有("a")标签都起作用。如果我指定i.e:getElementsByTagName("a")[0],我可以让它对一个("a")标签起作用...然而,我不能让所有的标签都以相同的方式响应。
以下是代码
function links() {
if(!document) return false;
var link = document.GetElementsByTagName("a")[0];
link.onclick = function() {
alert("hi");
}
}我尝试过document.getElementsByTagNAme("a")[0:4],认为它可以像python一样工作,但没有成功。有人能帮帮我吗?
谢谢!
发布于 2013-09-21 02:50:41
document.getElementsByTagName()返回与该标记匹配的元素数组。由于您引用的是第0个元素,因此只有第一个<a>标记会受到影响。
要解决这个问题,您可以遍历数组并将onclick句柄应用于每个元素。
发布于 2013-09-21 02:51:31
您可以像这样尝试:
var link = document.getElementsByTagName("a");
for (var i = 0, j = link.length; i < j; ++i) {
link[i].onclick = function() {
alert("hi");
}
}这里有一个jsfiddle:http://jsfiddle.net/v3f7U/
https://stackoverflow.com/questions/18923810
复制相似问题