我有一个id为“productPriceContainer”的div,在这个div中有一个类“price”。 我想访问“价格”类的innerHTML,因为我还有其他类叫“价格”。
我可以链接这样的东西吗?
document.getElementById(productPriceContainer).getElementsByClassName(price).innerHTML
如果不是正确的做法是什么?
由于
答案 0 :(得分:3)
如果您在ID为price
的元素中有一个类productPriceContainer
的元素,则可以
document.getElementById('productPriceContainer')
.getElementsByClassName('price')[0].innerHTML
请注意getElementsByClassName
中的 s 。它解释了为什么你不能像这样链。你没有一个名为getElementByClassName
的函数,因为与id相反,没有任何元素具有给定的类。
答案 1 :(得分:1)
几乎。
getElementsByClassName
(复数!)返回NodeList,而不是Node,因此您必须循环它以获取节点(然后您可以使用innerHTML
。答案 2 :(得分:1)
您正在向方法传递变量而不是String - >它应该是"price"
而不是price
。
按类名检索节点的方法是getElementsByClassName
您缺少“s”
它返回一个DOM元素数组,因此您必须遍历容器的子元素
例如:
document.getElementById("productPriceContainer").getElementsByClassName("price")[0].innerHTML = "Asdf";
将容器元素中具有类innerHTML
的第一个DOM元素的"price"
设置为“Asdf”
迭代元素可能如下所示:
var elements = document.getElementById("productPriceContainer")
if(elements) {
var classes = elements.getElementsByClassName("price");
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "Asdf" + i;
}
}
这是JSBin