Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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中,如何在多个位置(没有getElementbyId)更改跨距内的文本?_Javascript_Html - Fatal编程技术网

在JavaScript中,如何在多个位置(没有getElementbyId)更改跨距内的文本?

在JavaScript中,如何在多个位置(没有getElementbyId)更改跨距内的文本?,javascript,html,Javascript,Html,我有一个网站,当你点击一个按钮时,按钮内的文本会从我制作的数组变成随机字符串。这很好,但是当我试图让那个按钮改变多个不同跨距内的文本时,该函数完全停止工作 let example list=[“书架”、“书”、“政治理想”、“笔记本”、“智能手机”、“打印机”、“自行车”、“背包”]; 函数newExample(){ 让randomNumber=Math.floor(Math.random()*(exampleList.length)); document.getElementById('ch

我有一个网站,当你点击一个按钮时,按钮内的文本会从我制作的数组变成随机字符串。这很好,但是当我试图让那个按钮改变多个不同跨距内的文本时,该函数完全停止工作

let example list=[“书架”、“书”、“政治理想”、“笔记本”、“智能手机”、“打印机”、“自行车”、“背包”];
函数newExample(){
让randomNumber=Math.floor(Math.random()*(exampleList.length));
document.getElementById('changeText').innerHTML=exampleList[randomNumber];
}
找到新的
______


你需要的是一个或为所有需要更新的元素提供一个公共类名。然后,使用
querySelectorAll()
查找所有这些内容。将它们放入数组中,然后在数组项上循环以填充它们

其他几项:

实际上,按钮中不需要嵌套的
span
元素,只需为按钮指定与需要更新其文本的其他元素相同的类名即可

不要使用内联HTML事件处理属性(
onclick
,等等),因为这种技术已经有25年以上的历史了。相反,遵循现代标准,用JavaScript进行所有事件绑定

另外,只有在获取/设置包含HTML内容的字符串时,才使用
.innerHTML
。如果字符串中没有HTML,请使用
.textContent

let example list=[“书架”、“书”、“政治理想”、“笔记本”、“智能手机”、“打印机”、“自行车”、“背包”];
//获取对按钮的引用
var btn1=document.getElementById(“btn1”);
var btn2=document.getElementById(“btn2”);
//设置他们的事件处理程序
btn1.addEventListener(“单击”,新建示例);
btn2.addEventListener(“单击”,新建示例);
//将所有需要更新的元素获取到数组中
var elementsToUpdate=Array.prototype.slice.call(document.querySelectorAll('.changeText');
函数newExample(){
让randomNumber=Math.floor(Math.random()*(exampleList.length));
//在跨度上循环
elementsToUpdate.forEach(函数(元素){
element.textContent=示例列表[randomNumber];
});
}
找到新的
______


你需要的是一个或getElementbyClassName或querySelectorAll正是您所需要的。出了什么问题?
getElementbyClassName
应该是
getElementsByClassName
,我向您保证,它和
querySelectorAll
工作得很好。添加用于getElementsbyClassName和/或querySelectorAll的js代码您可能试图将
.innerHTML
应用于collecion而不是每个元素。请记住
getElementsbyClassName
querySelectorAll
将返回元素的集合谢谢!我将尝试在真实的网站上实现它。是的,只是要等待计时器,非常感谢。轻微的输入错误,var btn2=document.getElementById(“btn2”),应为“btn1”,但已固定且正常工作