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

时间:2012-12-13 11:29:07

标签: javascript

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

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

    }

当我运行此代码时,我得到Uncaught TypeError: Cannot set property 'color' of undefined。但是,如果我执行console.log(clickedText),则会记录相应的

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

2 个答案:

答案 0 :(得分:5)

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

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

clickedText[0].style.color = "green";

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

答案 1 :(得分:5)

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

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