Javascript 更改html上的相同id
是否可以通过按下按钮来更改相同的id 我的html上有相同的id,但只有第一次更新,当我用codeJavascript 更改html上的相同id,javascript,html,Javascript,Html,是否可以通过按下按钮来更改相同的id 我的html上有相同的id,但只有第一次更新,当我用codedocument.getElementById('gold')按下按钮时 实例 var-gold=0; document.getElementById('gold')。innerHTML=gold; 函数goldMaker(){ 黄金=黄金+1; document.getElementById('gold')。innerHTML=gold; } 黄金:0 货币:0 makegold/money
document.getElementById('gold')按下按钮时代码>
实例
var-gold=0;
document.getElementById('gold')。innerHTML=gold;
函数goldMaker(){
黄金=黄金+1;
document.getElementById('gold')。innerHTML=gold;
}
黄金:0
货币:0
makegold/money
ID在整个页面中必须是唯一的,因此它总是只返回第一次出现的内容
如果在不同的容器中,您可以查找重复的ID,例如
gold1 = $('#rings #gold');
gold2 = $('#necklaces #gold');
然而,这不是推荐的做法
函数goldMaker(){
黄金=黄金+1;
//document.getElementById('gold')。innerHTML=gold;
var ele=document.getElementsByTagName(“span”);
控制台日志(ele);
对于(var i=0;i请勿对多个元素使用id
。这些元素必须是唯一的。请改用class
并使用索引检索适当的元素,或添加其他类以使查询更智能
下面,我有一个简单的递增函数来获取第二个元素并递增其值
函数goldMaker(索引){
增量值(“黄金”,指数,1);
}
函数增量值(类名、索引、金额){
var元素=document.getElementsByClassName(className)[index];
element.innerHTML=(parseInt(element.innerHTML,10)| | 0)+金额;
}
黄金:0
货币:0
赚钱/赚钱
如果您已经更改了它,那么您就不能使用原始的id号,并且在2个或多个元素上使用相同的id是无效的。SID不能重复。在这里,您对两个元素都有相同的id。有任何特定的原因不使用类
?请改用类。id不应该重复。因此,名称id、标识符、唯一性等等…getElementById
是一种出现在文档
对象上的方法,但不是出现在每个HTML元素上的方法。这种代码不起作用。@Quentin对,我没有意识到这只在jQuery中可能,而在vanilla JS中不可能-因为我没有使用它。我已经将其更改为jQuery代码。jQuery不能做任何vanilla JS不能做的事情。你可以d可能使用querySelector()
而不是getElementById()来完成
。但是你不应该-最好修复html并使用类。使用类肯定更好,但有时你只需要处理设计糟糕的页面,该页面包含重复的id,而没有其他内容。这在技术上是可行的,但会更新页面上的所有跨距,而不管id
。是的,这就是为什么不建议这样做的原因如果使用jquery,则会有所不同。$(“span[id='gold'])