![](/img/trans.png)
[英]How to access a ordered list's anchor tag and change the “href” in JavaScript
[英]Javascript: How to change href for all <area> tag ID's?
我正在尝试为我所在区域的每个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,但如果可能的话,我确实需要简化代码。
如果有人可以帮助我,将不胜感激。
谢谢!
看起来您想使用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';
var areas = document.getElementByTagName("area");
for (var i = 0; i < areas.length; ++ i) {
var h = areas[i].alt;
areas[i].href = h + ".html";
}
可以使用getElementsByTagName('area')代替getElementById。 这将为您提供标签名称为“ area”的所有元素的数组。
感谢您的答复, 您的回答非常完美! 经过一番尝试和错误后,我还找到了一种替代方法。 在发送问题之前花了几天时间尝试使用Google的方式进行操作。
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";
}
};
您的方法要好得多,感谢您的快速响应。 问题解决了!
您正在doSomething
函数中获取this
,因此您已经有了该元素,因此只需分配值即可
function doSomething(element){
element.href = element.alt + ".html";
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.