Javascript - 将元素放在var中但不能更改样式

JVG*_*JVG 0 javascript

我有一个单击元素时调用的函数.

function showHide(elem){    
        var clickedText = elem.getElementsByTagName("p");
        clickedText.style.color = "green";

    }
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我得到了一个Uncaught TypeError: Cannot set property 'color' of undefined.但是,如果我这样做console.log(clickedText),请记录相应的

标签.不能为我的生活弄清楚为什么这不起作用,我错过了一些完全明显的东西吗?

Jam*_*ice 5

getElementsByTagName方法返回一个元素集合(在a中NodeList,就像一个数组).

您需要指定一个索引.例如:

clickedText[0].style.color = "green";
Run Code Online (Sandbox Code Playgroud)

目前,您正在尝试访问自身的style属性NodeList,而不是其中包含的元素.


sph*_*air 5

getElementsByTagName 返回元素列表,因此您需要遍历结果:

var clickedTexts = elem.getElementsByTagName("p");
for (var i = 0; i < clickedTexts.length; i++) { 
    clickedTexts[i].style.color = "green";
}
Run Code Online (Sandbox Code Playgroud)