gpt4 book ai didi

javascript - 使用 JavaScript 更改 anchor 文本

转载 作者:搜寻专家 更新时间:2023-11-01 04:50:44 24 4
gpt4 key购买 nike

示例 HTML:

<div id="video-quality" style="">
<a class="low bttn" href="">
<span>Low Quality</span>
</a>
</div>

嘿,我正在尝试使用 JavaScript 定位 anchor 标记并将其当前的“低质量”文本更改为“高质量”。

我不太了解 JavaScript,但这就是我想出的。但它显然不起作用:

var vid_id=document.getElementById('video-quality');
var anchor=vid_id.getElementsByTagName('a');
anchor.innerHTML="High Quality";

最佳答案

假设 video-quality div 只会有 一个 anchor ,你离得不远了:

var vid_id=document.getElementById('video-quality');
var anchor=vid_id.getElementsByTagName('a');
anchor[0].innerHTML="High Quality";
// ^^^-- change here

(如果您不需要支持 IE7 和更早版本,还有更短的方法,请参阅 David's answer 了解更多信息。)

关键在名称 getElementsByTagName 中(注意复数形式)。它返回 NodeList ,不是一个元素。 NodeList 是(令人震惊的!)匹配节点的列表,在本例中匹配元素innerHTML 是单个元素的属性,因此我们必须索引到 NodeList 才能访问特定元素。上面的代码假定至少有一个匹配元素,并更新它的 HTML。如果您想更具防御性:

var vid_id=document.getElementById('video-quality');
var anchors=vid_id.getElementsByTagName('a');
if (anchors[0]) {
anchors[0].innerHTML="High Quality";
}

这允许没有匹配 anchor 的可能性。

请注意,这样做会删除 span 元素,因为 span 是 anchor 的后代。如果您想避免这种情况,只需查找 span 元素作为 anchor 的后代,就像您在 div 中查找 anchor 一样。


FWIW,我建议使用合理的以 JavaScript 浏览器为中心的库,例如 jQuery , YUI , Closure , 或 any of several others .它们提供了很多实用功能,并消除了一些浏览器差异。但如果您更喜欢直接使用 DOM,那也很好。

关于javascript - 使用 JavaScript 更改 anchor 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com