改变所有链接的颜色

时间:2014-02-21 14:44:43

标签: javascript

我想更改<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';
            }
        }

3 个答案:

答案 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';
    }
}

jsFiddle

答案 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");