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";
  }
}

我无法删除 a 标签中的 ID,因为它与另一个页面相关。我知道代码中有问题,但不知道在哪里。欢迎任何帮助!谢谢!

4

2 回答 2

0

不是style.backgroundstyle.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 回答
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 回答