我需要使用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解决方案。
答案 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:)