您可以这样做:
var list = document.getElementById("foo").getElementsByClassName("bar");
if (list && list.length > 0) {
list[0].innerHTML = "Goodbye world!";
}
或者,如果您希望通过减少错误检查和更简洁的方式来做到这一点,则可以像这样在一行中完成:
document.getElementById("foo").getElementsByClassName("bar")[0].innerHTML = "Goodbye world!";
在解释中:
- 您将获得带有的元素
id="foo"
。
- 然后,您找到具有的对象中包含的对象
class="bar"
。
- 这将返回一个类似数组的nodeList,因此您引用该nodeList中的第一项
- 然后,您可以设置该
innerHTML
项目的来更改其内容。
注意事项:一些较旧的浏览器不支持getElementsByClassName
(例如IE的较旧版本)。如果缺少该功能,可以将其填充到位。
我在这里建议使用具有内置CSS3选择器支持的库,而不要自己担心浏览器的兼容性(让其他人来完成所有工作)。如果您只想图书馆这样做,那么Sizzle会很好用。在Sizzle中,可以这样进行:
Sizzle("#foo .bar")[0].innerHTML = "Goodbye world!";
jQuery内置了Sizzle库,在jQuery中,它是:
$("#foo .bar").html("Goodbye world!");
document.getElementsByClassName
会很好的。