1

新しいタブで特定のリンクを開きたい。タグに直接設定できないので、特定のクラス名のタグ<a>にリンクを入れて、<span>JavaScriptでターゲット属性を設定したいと思います。

これは簡単だと思いましたが、機能させることができません。

addOnloadHook(function () {
  document.getElementByClassName('newTab').getElementsByTagName('a').setAttribute('target', '_blank');
});

<span class="newTab"><a href="http://www.com">Link</a></span>

私は何が間違っているのですか?

4

2 に答える 2

8

document.getElementByClassNameが存在しない場合、正しい関数は次のとおりですdocument.getElementsByClassName(余分なことに注意してくださいs)。一致するノードの配列を返すため、インデックスを指定する必要があります。

addOnloadHook(function () {
  document.getElementsByClassName('newTab')[0].getElementsByTagName('a')[0].setAttribute('target', '_blank');
});
于 2010-09-26T12:56:29.787 に答える
0

ただし、ページ上で指定されたクラス ('newTab') を使用してすべてのスパンを反復処理する必要がある場合があります。

addOnLoadHook(function(){

  var span = document.getElementsByClassName('newTab');

  for(var i in span) {
    span[i].getElementsByTagName('a')[0].setAttribute('target','_blank');
  }

});

スパンに複数のアンカー タグがある場合は、次のようにアンカー タグを反復処理する必要もあります。

addOnLoadHook(function(){

  var span = document.getElementsByClassName('newTab');

  for(var i in span){
    var a = span[i].getElementsByTagName('a');
    for(var ii in a){
      a[ii].setAttribute('target','_blank');
    }
  }

});
于 2010-09-26T13:20:23.147 に答える