2011-10-20 5 views
1

ページ内のすべてのリンクのtargetを設定しようとしています。私は現在試しています:文書内のすべてのアンカーの属性を設定します。

var x = document.getElementsByTagName('a') 
for (i in x) 
    i.setAttribute('target', '_blank'); 

私はTypeErrorを取得します。それは私がx[0]setAttributeで動作しますが、上の方法では動作しません。提案?

答えて

4

iの代わりにx[i]を参照してください。 iはリンクのインデックスを返します。

アレイ状のオブジェクトの場合、for(i in x)の代わりにfor(var i=0; i<x.length; i++)を使用することをお勧めします。

あなたのコードは、必ずしもすべての a要素がリンクであるので、以下のコードを使用して、より効率的に記述することができ

var x = document.links; 
for(var i=0, l=x.length; i<l; i++){ 
    x[i].setAttribute("target", "_blank"); 
} 
+1

は少なくともChromeで、通常の 'for'ループを使用しても、必要があるため、 'NodeList'の' item'と 'length'プロパティは列挙可能です。 –

+0

これは残念なことに私にとってはうまくいきませんでした。 – tekknolagi

+0

WHOOPS。アンカーはまだ存在しませんでした。ありがとうございました! – tekknolagi

関連する問題