在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”,但已固定且正常工作