Javascript 按ID更改标记背景颜色
HTML是这样的:Javascript 按ID更改标记背景颜色,javascript,web,Javascript,Web,HTML是这样的: <div class="header"> <ul> <li> <a class="abc" id="abc" href="www.testing.com">testing</a> </li> </ul> </div> <script language="javascript" type="text/javascript"> var
<div class="header">
<ul>
<li>
<a class="abc" id="abc" href="www.testing.com">testing</a>
</li>
</ul>
</div>
<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";
}
}
我的javascript是这样的:
<div class="header">
<ul>
<li>
<a class="abc" id="abc" href="www.testing.com">testing</a>
</li>
</ul>
</div>
<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,因为它与另一页相关。
我知道代码中有错误,但无法找出错误所在。
欢迎任何帮助!
谢谢 不是style.background,style.backgroundColor:
将id=abc交给ul,并将其从a标签上移除,您的代码就会工作
演示:
来自MDN:
element.getElementsByTagName
返回具有给定标记名的元素列表。子树
在指定的元素下搜索,不包括该元素
本身
因此,您必须搜索ul节点
您的JavaScript不需要任何更改。我想这只是示例中的一个输入错误,但a-tago中没有href哦,是的。我忘了添加href链接。。。我补充说。谢谢。谢谢你的帮助,但它仍然不起作用。因为类位于a标记中,我认为循环或getElementsByTagName中有问题。我在ul中添加了另一个ID,它就起作用了。谢谢你的帮助。