我想更改<ul class="menu">
中所有链接的颜色,但它不会改变我的颜色。我是一个完整的javascript初学者,我正在做一些练习。
我的<ul class="menu">
:
<ul class="menu">
<li><a href="">hello</a></li>
<li><a href="">hello</a></li>
<li><a href="">hello</a></li>
<li><a href="">hello</a></li>
我在javascript中做错了什么?
var x=document.getElementByClass("menu");
if(x){
var e =x.getElementsByTagName("a");
for(var i=0; i<e.length; i++){
e[i].style.color='yellow';
}
}
答案 0 :(得分:5)
您需要致电的功能是getElementsByClassName
。并且它返回NodeList
,因此您必须迭代结果。
var menus = document.getElementsByClassName("menu");
for (var j = 0; j < menus.length; j++) {
var e = menus[j].getElementsByTagName("a");
for(var i=0; i<e.length; i++){
e[i].style.color='yellow';
}
}
答案 1 :(得分:2)
我建议您查看一些可用于您正在使用的浏览器的开发人员工具(例如firebug)。他们中的许多人都有一个控制台,允许您在您正在查看的当前页面上运行javascript。
如果您曾尝试在firebug控制台中运行代码(这只是我最熟悉的代码),那么它会给您一个错误,告诉您getElementByClass不是函数。
如果不出意外,这样做可以帮助您了解至少javascript的一大块错误。
但是,你的问题是你正在寻找函数getElementsByClassName而不是getElementsByClass。
另外,我假设你想要你的锚标签中的“你好”:
<ul class="menu">
<li><a href="">Hello</a></li>
<li><a href="">hello</a></li>
<li><a href="">hello</a></li>
<li><a href="">hello</a></li>
答案 2 :(得分:0)
您正在寻找的功能是:getElementsByClassName()
var x=document.getElementsByClassName("menu");