0

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

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

    }

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

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

4

2 回答 2

5

getElementsByTagName方法返回元素的集合(在 aNodeList中,类似于数组)。

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

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

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

于 2012-12-13T11:31:44.543 回答
5

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

var clickedTexts = elem.getElementsByTagName("p");
for (var i = 0; i < clickedTexts.length; i++) { 
    clickedTexts[i].style.color = "green";
}
于 2012-12-13T11:32:00.840 回答