我有一个单击元素时调用的函数。
function showHide(elem){
var clickedText = elem.getElementsByTagName("p");
clickedText.style.color = "green";
}
当我运行此代码时,我得到Uncaught TypeError: Cannot set property 'color' of undefined
。但是,如果我执行console.log(clickedText)
,则会记录相应的
标记。不能为我的生活弄清楚为什么这不起作用,我错过了一些完全明显的东西吗?
答案 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";
}