按ID更改标签背景颜色

时间:2013-05-09 00:04:17

标签: javascript web

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,因为它与另一个页面相关。 我知道代码中有问题,但无法弄清楚在哪里。 欢迎任何帮助! 谢谢!

2 个答案:

答案 0 :(得分: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";
    }
}

答案 1 :(得分:0)

id="abc"提供给ul并将其从a标记中删除,您的代码就可以使用。

演示: http://jsfiddle.net/BgbjD/

来自MDN:

  

<强> element.getElementsByTagName

     

返回具有给定标记名称的元素列表。子树   搜索指定元素下面的元素   本身。

所以你必须搜索ul节点。

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

您的JavaScript不需要任何更改。