在html上更改相同的ID

时间:2016-02-01 11:28:50

标签: javascript html

是否可以通过按下按钮

来更改相同的ID

我的html上有相同的ID,但只有第一次更新,当我按下代码为document.getElementById('gold').innerHTML = gold;

的按钮时

实施例



var gold = 0;
document.getElementById('gold').innerHTML = gold;

function goldMaker() {
  gold = gold + 1;
  document.getElementById('gold').innerHTML = gold;
}

Gold: <span id="gold">0</span> 
<p>
  Money: <span id="gold">0</span>
</p>

<button onclick="goldMaker(1)">Make gold/money</button>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:4)

不要在多个元素上使用id。这些必须是独特的。使用class代替并使用索引检索正确的元素或添加其他类以使查询更加智能化。

下面,我有一个简单的增量函数来抓取第二个元素并增加它的值。

function goldMaker(index) {
  incrementValue('gold', index, 1);
}

function incrementValue(className, index, amount) {
  var element = document.getElementsByClassName(className)[index];
  element.innerHTML = (parseInt(element.innerHTML, 10) || 0) + amount;
}
Gold: <span class="gold">0</span><br />
Money: <span class="gold">0</span><br />
<button onclick="goldMaker(1)">Make gold/money</button>

答案 1 :(得分:1)

ID在整个页面中必须是唯一的,因此它始终只返回第一个出现的位置。

如果它们位于不同的容器中,您可以查找重复的ID,例如

gold1 = $('#rings #gold');
gold2 = $('#necklaces #gold');

然而,这不是值得推荐的做法!

答案 2 :(得分:1)

function goldMaker() {
  gold = gold + 1;
  //  document.getElementById('gold').innerHTML = gold;
 var ele= document.getElementsByTagName("span") ;
 console.log(ele);
    for(var i=0; i<ele.length; i++)
    {
      ele[i].innerHTML = gold;
    }
}

点击按钮时使用此方法,但不建议使用