我在页面上有一个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以同样的方式工作吗?
答案 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");