繁体   English   中英

Javascript:如何为所有人更改href <area> 标签ID?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM