使用JavaScript更改span类的内容

时间:2016-03-28 23:56:44

标签: javascript html innerhtml getelementsbyclassname

我需要使用JavaScript更改类名称的跨度内容。我更喜欢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 new text here blah blah blah

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

5 个答案:

答案 0 :(得分:2)

你几乎就在那里,只需从.删除class name即可。 原因是,当您调用getElementsByClassName方法时。它只搜索整个文档的类名。因此,您不需要在类名前加.

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

答案 1 :(得分:1)

不要在新的时间之前放一段时间。

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

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

更新:根据this question,是的,将JavaScript代码置于底部仍然不足以保证DOM完全加载。您必须在document.onload之后进行替换。

document.onload = function() {
    document.getElementsByClassName('.new')[0].innerHTML = 'new text here';
}

答案 4 :(得分:-1)

如前所述,从选择器中删除点('。')。 如果您想以这种方式选择类,我建议使用document.querySelector或document.querySelectorAll:)