将跨度 class 的内容更改为 JavaScript

Change content of span class with JavaScript

我需要使用 JavaScript 更改名称为 class 的 span 的内容。我更喜欢 JavaScript 而不是 jQuery,因为这是一个基本站点,不会加载 jQuery 文件,我宁愿不为这件事添加文件。这是我尝试过的:

HTML:

blah blah blah <span class="new"></span> blah blah blah

JavaScript 在外部 JavaScript 文件中:

document.getElementsByClassName('.new')[0].innerHTML = 'new text here';

希望它会显示为: blah blah blah 新文本在这里 blah blah blah

进行了搜索,但只找到了 ElementID 解决方案。

不要在 new 前加句号。

document.getElementsByClassName('new')[0].innerHTML = 'new text here';

'.new' 中删除点 .。这是隐含的,因为该函数仅查找 类.

更新:根据this question,是的,将您的JavaScript代码放在底部可能仍然不足以保证DOM 已满载。您必须在 document.onload.

之后进行更换
document.onload = function() {
    document.getElementsByClassName('.new')[0].innerHTML = 'new text here';
}

如前所述,请从 selector 中删除点 ('.')。 如果您想 select 类 那样,我建议您使用 document.querySelector 或 document.querySelectorAll :)

您快完成了,只需从 class name 中删除 .。 原因是,当你调用 getElementsByClassName 方法时。它会在整个文档中搜索 class 个名称 only.So,您不需要在 class 名称之前放置 .

document.getElementsByClassName('new')[0].innerHTML = 'new text here';

在同一主机上的不同站点上尝试了代码,但仍然无效。我根据在他们的主机中的类似站点上找到的 elementID 代码修改了代码,这有效:

var newText = document.getElementsByClassName('new')[0];
newText.innerHTML = 'new text here';

不知道为什么,但这奏效了。感谢您的回复!