你可以这样做:
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
注意事项:某些较旧的浏览器不支持(例如,旧版本的IE)。如果缺少该函数,可以填充到位。getElementsByClassName
这就是我建议使用具有内置CSS3选择器支持的库的地方,而不是自己担心浏览器兼容性(让其他人完成所有工作)。如果你只想要一个库来做到这一点,那么Sizzle将工作得很好。在Sizzle中,这将像这样完成:
Sizzle("#foo .bar")[0].innerHTML = "Goodbye world!";
jQuery内置了Sizzle库,在jQuery中,这将是:
$("#foo .bar").html("Goodbye world!");