0

我试图让脚本向用户询问 HTML 类名称和颜色名称,然后将该 HTML 类的所有元素的颜色设置为给定的颜色。

我将 html 设置为 haveclass = wish并且有一个li带有class = class2. 语法对此是正确的。我只是不知道该怎么做。我一直在对该document.getElementsByClassName()功能进行大量测试,但对我来说效果不佳。

/*var classask=window.prompt("which class?");
var nodes = getElementsByClassName(classask);
document.writeln(nodes);*/

var styx=window.prompt("pick a classes name so for usage");
var nodes =document.getElementsByClassName(styx);
document.write(nodes);
nodes.style.color=red;
//document.write(document.getElementsByClassName(styx));
//document.writeln(x);
//document.write(document.getElementByClass(styx));
HTMLElement.Object.className=styx;
document.writeln(styx);

//var newcolor=window.prompt("pick a new color for usage");
//var nodes=(document.getElementByClass(classname));
//HTMLElementObject.className=styx;
//nodes.style.color=newcolor;

代码基本上是我自己完成的很多测试,我只是不知道如何让它工作。我要么在它什么都不做的地方得到它,要么它[object HTMLCollection] 总是说不管我输入什么。

4

2 回答 2

1

document.getElementsByClassName()返回一个nodeList。这是一个节点列表。要对 中的所有节点进行操作nodeList,您必须遍历nodeList并将您的更改应用于每个项目,nodeList如下所示:

var newcolor = window.prompt("pick a new color for usage");
if (newcolor !== null) {
    var nodes = document.getElementsByClassName(classname);
    for (var i = 0; i < nodes.length; i++) {
        nodes[i].style.color = newcolor;
    }
}

仅供参考,你也getElementByClass应该有getElementsByClassName

于 2012-11-18T21:41:52.540 回答
0

NodeList没有style属性。您必须遍历NodeList中的HTMLElementNodes(它非常像一个数组)并依次访问每个元素的属性。style

于 2012-11-18T21:15:32.610 回答