我正在尝试执行下面的代码,但是我的区域的每个ID。我尝试过使用循环,但是如果有意义的话,我无法根据alt标签更改每个ID的HREF ......
JAVASCRIPT:
function doSomething(getID){
var a = document.getElementById('cp1');
var b = getID.alt;
a.href = b + ".html";
};
HTML:
<area id="cp1" class="jTip" shape="rect" coords="0,77,41,123" alt="Place1" onmouseover="javascript:doSomething(this);" href="javascript:doSomething(this);">
<area id="cp2" class="jTip" shape="rect" coords="0,122,41,171" alt="Place2" onmouseover="javascript:doSomething(this);" href="javascript:doSomething(this);">
<area id="cp3" class="jTip" shape="rect" coords="0,220,41,170" alt="Place3" onmouseover="javascript:doSomething(this);" href="javascript:doSomething(this);">
代码适用于第一个ID,但我希望它适用于与区域标记相关的所有ID而不是我只是为每个ID添加一个新变量,然后更改每个ID的HREF。
我有超过60个区域或ID,但我确实需要简化代码。
如果有人能帮助我,我将不胜感激。
谢谢!
答案 0 :(得分:0)
您希望使用document.getElementsByTagName
,然后返回NodeList,然后您可以迭代。
var areas = document.getElementsByTagName('area'), // get
i;
for (i = 0; i < areas.length; ++i) // loop
areas[i].href = areas[i].alt + '.html';
答案 1 :(得分:0)
var areas = document.getElementByTagName("area");
for (var i = 0; i < areas.length; ++ i) {
var h = areas[i].alt;
areas[i].href = h + ".html";
}
答案 2 :(得分:0)
您可以使用getElementsByTagName('area')代替getElementById。这将为您提供一个包含标签名称“area”的所有元素的数组。
答案 3 :(得分:0)
感谢您的回复,您的回答非常有效!我在经过一些试验和错误后也找到了替代方案。在发送问题之前花了几天试图谷歌的方式。
var tag = document.getElementsByClassName('jTip');
for (var i = 0; i < tag.length; ++i) {
var a = document.getElementById(tag[i].id);
var b = getID.alt;
a.href = b + ".html";
}
};
你的方式好多了感谢您及时的回复。问题解决了!
答案 4 :(得分:0)
您在this
函数中获得了doSomething
,因此您已经拥有该元素,因此只需指定值
function doSomething(element){
element.href = element.alt + ".html";
};