Javascript 更改所有链接的颜色

Javascript 更改所有链接的颜色,javascript,Javascript,我想更改我的中所有链接的颜色,但它不会为我更改颜色。我是javascript的完全初学者,我正在做一些练习 我的: 我在javascript中做错了什么 var x=document.getElementByClass("menu"); if(x){ var e =x.getElementsByTagName("a"); for(var i=0; i<e.length; i++){

我想更改我的中所有链接的颜色,但它不会为我更改颜色。我是javascript的完全初学者,我正在做一些练习

我的:

我在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';
            }
        }

您正在寻找的函数是:GetElementsByCassName


需要调用的函数是GetElementsByCassName。它返回一个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';
    }
}

我建议您查看一些开发人员工具,例如firebug,它们可用于您正在使用的任何浏览器。其中许多都有一个控制台,允许您在当前查看的页面上运行javascript

如果您试图在firebug控制台中运行代码,这正是我最熟悉的一个,它会给您一个错误,告诉您getElementByClass不是一个函数

如果没有其他问题,那么这样做至少可以帮助您了解javascript块在哪里出错

但是是的,您的问题是您正在寻找函数getElementsByCassName,而不是getElementsByCass

另外,我假设你想在你的锚定标签中添加Hello:

<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>

没有函数getElementByClass。这是GetElementsByCassName。文本在链接之外,所以您要更改什么颜色?@Barmar仍然不起作用。@Malkasem很抱歉输入了此代码。你为什么要用JS而不是改变CSS呢?这个功能只有在现代浏览器中才受支持。如果您运行的是较旧的浏览器,此功能将不起作用。顺便说一句,它是元素而不是元素。。GetElementsByclassName这就是我要找的。谢天谢地,我不知道。既然可以而且通常有多个元素具有相同的类名,那么它还能工作吗?是的,这就是我认为它不工作的原因,因为有多个元素。但我不知道该怎么办,也不确定这就是问题所在。
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';
    }
}
<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>