Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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 更改html上的相同id_Javascript_Html - Fatal编程技术网

Javascript 更改html上的相同id

Javascript 更改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

是否可以通过按下按钮来更改相同的id

我的html上有相同的id,但只有第一次更新,当我用code
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'])