1

HTML は次のようになります。

     <div class="header">
<ul>
  <li>
     <a class="abc" id="abc" href="www.testing.com">testing</a>
  </li>
</ul>
</div>

私のJavaScriptは次のようなものです:

    <script language="javascript" type="text/javascript">
var links = document.getElementById("abc");
var a = links.getElementsByTagName("a");
var thisLocationHref = window.location.href;
for(var i=0;i<a.length;i++)
{

  var tempLink = a[i];      

  if(thisLocationHref === tempLink.href)
  {
      tempLink.style.backgroundColor="red";
  }
  else
  {
      tempLink.style.backgroundColor="blue";
  }
}

別のページに関連しているため、タグ内の ID を削除できません。コードに問題があることはわかっていますが、どこにあるのかわかりません。どんな助けでも大歓迎です!ありがとう!

4

2 に答える 2

0

をに付けてタグから削除するid="abc"と、コードが機能します。ula

デモ: http://jsfiddle.net/BgbjD/

MDN から:

element.getElementsByTagName

指定されたタグ名を持つ要素のリストを返します。要素自体を除いて、指定された要素の下のサブツリーが検索されます。

ulしたがって、ノードを検索する必要があります。

<div class="header">
    <ul id="abc">
        <li> <a class="abc">testing</a>
        </li>
    </ul>
</div>

JavaScript を変更する必要はありません。

于 2013-05-09T00:13:33.103 に答える
0

style.backgroundではありませんstyle.backgroundColor:

var links = document.getElementById("abc");
var a = links.getElementsByTagName("a");
var thisLocationHref = window.location.href;
for (var i = 0; i < a.length; i++) {

    var tempLink = a[i];

    if (thisLocationHref === tempLink.href) {
        tempLink.style.backgroundColor = "red";
    } else {
        tempLink.style.backgroundColor = "blue";
    }
}
于 2013-05-09T00:06:20.373 に答える