为什么这个小javascript无法正常工作?

时间:2010-09-25 13:26:23

标签: javascript

我在页面上有一个id为“myDiv”的div的多个实例。我想替换这些div的内容。当我使用这个javascript:

function replaceContent(id, content) {
    var container = document.getElementById(id);
    container.innerHTML = content;
}

replaceContent('myDiv', 'hello there');


<div id="myDiv"></div>
<div id="myDiv"></div>
<div id="myDiv"></div>

它只替换其中一个div内的内容而不是全部内容。如果我使用jquery的.html()函数,它将替换所有div的内容。有什么方法可以让上面的js以同样的方式工作吗?

3 个答案:

答案 0 :(得分:7)

id值必须是唯一的 - 您不能拥有多个具有相同名称的ID并更新所有ID。

答案 1 :(得分:1)

  

我在页面上有一个id为“myDiv”的div的多个实例。

这是你做错的地方。您无法为网页上的多个元素分配ID - 它必须是唯一的。

  

它只替换其中一个div中的内容而不是全部内容。

这是因为getElementById()仅返回匹配多个此类元素的第一个匹配元素。


要解决此问题,请将而不是 ID 分配给要定位的div,如果可以使用jQuery,请使用此代替(假设{{ 1}}):

class="myDiv"

答案 2 :(得分:0)

ID必须是唯一的。您可以为所有div使用相同的类名,然后使用css选择器。

<div id="div1" class="mydivs">blah</div>
<div id="div2" class="mydivs">blah123</div>

例如在JQuery中,您可以这样做:

$('.mydivs').html("whatever");