假设video-quality
div
will 中只有一个锚,那么您离我们不远了:
var vid_id=document.getElementById('video-quality');
var anchor=vid_id.getElementsByTagName('a');
anchor[0].innerHTML="High Quality";
// ^^^-- change here
(如果您不需要支持 IE7 及更早版本,可以使用更短的方法,请参阅David 的回答了解更多信息。)
关键在于名称getElementsByTagName
(注意复数)。它返回一个NodeList
,而不是一个元素。ANodeList
是(令人震惊!)匹配节点的列表,在本例中为匹配元素。innerHTML
是单个元素的属性,因此我们必须对 进行索引NodeList
才能访问特定元素。上面的代码假定至少有一个匹配元素,并更新了它的 HTML。如果你想更具防御性:
var vid_id=document.getElementById('video-quality');
var anchors=vid_id.getElementsByTagName('a');
if (anchors[0]) {
anchors[0].innerHTML="High Quality";
}
这允许没有匹配的锚点的可能性。
请注意,通过这样做,您将删除span
元素,因为span
是锚点的后代。如果您想避免这种情况,只需查找span
作为锚点后代的元素,就像您在div
.
FWIW,我建议使用合理的以 JavaScript 浏览器为中心的库,如jQuery、YUI、Closure或其他任何一个。它们提供了许多实用功能,并消除了一些浏览器差异。但是,如果您更喜欢直接使用 DOM,那也没关系。