0

以下のコードを実行しようとしていますが、自分のエリアの ID ごとに実行しています。ループを使用してみましたが、alt タグに従って各 ID の HREF を変更する方法がわかりません。

ジャバスクリプト:

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 の HREF を変更するだけでなく、エリア タグに関連するすべての ID で機能するようにしたいと考えています。

60 以上の領域または ID がありますが、可能であればコードを単純化する必要があります。

誰かが私を助けることができれば、これはありがたいです。

ありがとう!

4

5 に答える 5

0

を使用したいようです。これは、反復できるNodeListdocument.getElementsByTagNameを返します。

var areas = document.getElementsByTagName('area'), // get
    i;

for (i = 0; i < areas.length; ++i)                 // loop
    areas[i].href = areas[i].alt + '.html';
于 2013-10-20T16:37:41.017 に答える
0
var areas = document.getElementByTagName("area");
for (var i = 0; i < areas.length; ++ i) {
    var h = areas[i].alt;
    areas[i].href = h + ".html";
}
于 2013-10-20T16:38:24.680 に答える
0

getElementById の代わりに、getElementsByTagName('area') を使用できます。これにより、タグ名「area」を持つすべての要素の配列が得られます。

于 2013-10-20T16:41:32.960 に答える