你可以这样做:
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!");