Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript更改span类的内容_Javascript_Html_Innerhtml_Getelementsbyclassname - Fatal编程技术网

使用JavaScript更改span类的内容

使用JavaScript更改span类的内容,javascript,html,innerhtml,getelementsbyclassname,Javascript,Html,Innerhtml,Getelementsbyclassname,我需要使用JavaScript更改带有类名的span的内容。我更喜欢JavaScript而不是jQuery,因为这是一个基本的站点,并且没有加载jQuery文件,我不想仅仅为了这一点而添加文件。以下是我尝试过的: HTML: 希望它能表现为: 废话,废话,废话,废话,废话,废话,废话 进行了搜索,但只找到了ElementID解决方案。请勿在新建前加句号 document.getElementsByClassName('new')[0].innerHTML='newtext here'从'中删除点

我需要使用JavaScript更改带有类名的span的内容。我更喜欢JavaScript而不是jQuery,因为这是一个基本的站点,并且没有加载jQuery文件,我不想仅仅为了这一点而添加文件。以下是我尝试过的:

HTML:

希望它能表现为: 废话,废话,废话,废话,废话,废话,废话


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

请勿在新建前加句号


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

'中删除点
。新建'
。这是隐含的,因为函数只查找类

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

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

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

您就快到了,只需从
类名中删除
。 原因是,当您调用
getElementsByClassName
方法时。它只在整个文档中搜索类名,因此您不需要在类名前加上

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

在同一主机上的不同站点上尝试了该代码,但仍然无效。我根据在其主机内的类似站点上找到的elementID代码修改了代码,这起到了作用:

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

不知道为什么,但这起作用了。谢谢你的回复

'.new'
没有点,因此
document.getElementsByClassName('new')[0]。innerHTML
我删除了点,但它仍然不起作用。我应该说我也试过了。我在标记之前加载了外部js文件这一事实会有所不同吗?或者[0]可能?注意:js文件上的所有其他脚本工作正常,因此正在加载。根据它的工作正常。你能提供一些代码来重现你的问题吗?谢谢你创造了小提琴,帮助了很多人看到它的工作。仍然不适合我,所以这个网站有点奇怪。这将是一个糟糕的决定。
querySelector
函数速度慢得多,此处不需要。在上面添加了一条新注释。谢谢。在上面添加了新的评论。谢谢。在上面添加了新的评论。谢谢。我已经更新了我的答案来解决你的问题。谢谢你。不知道为什么,但使用一个变量是有效的。谢谢你的解释,我不知道。很高兴它有帮助@我想我知道为什么。看见如果您想要最稳定和可预测的解决方案,请使用
onload
事件。
document.getElementsByClassName('new')[0].innerHTML = 'new text here';
var newText = document.getElementsByClassName('new')[0];
newText.innerHTML = 'new text here';