Javascript 用同一类替换所有div的innerHTML

Javascript 用同一类替换所有div的innerHTML,javascript,Javascript,我想用类“count”替换所有div的innerHTML:items1.innerHTML 我该怎么做呢?您可以通过jQuery这样做 $("div.count").html("new content"); 给你: var items = document.getElementById( 'items' ), divs = document.getElementsByClassName( 'count' ); [].slice.call( divs ).forEach(functio

我想用类“count”替换所有div的innerHTML:items1.innerHTML


我该怎么做呢?

您可以通过jQuery这样做

$("div.count").html("new content");
给你:

var items = document.getElementById( 'items' ),
    divs = document.getElementsByClassName( 'count' );

[].slice.call( divs ).forEach(function ( div ) {
    div.innerHTML = items.innerHTML;
});
现场演示:

我使用这个
[].slice.call(divs)
将节点列表转换为常规数组,这样我就可以对其调用
forEach
方法


顺便说一句。我个人会使用一个库(比如jQuery)来克隆内容。

更有效的选择器是$('div.count')-因为它依赖快速DOM操作'getElementsByTagName'来仅获取div作为起点。@Beejamin,它会按照OP的要求执行(“所有具有类'count'的div”)。不要选择额外的元素,你不应该对innerHTML做任何事情+1获取一个简单的JavaScript答案,但如果使用,它应该检查getElementsByClassName是否存在。@kinakuta
getElementsByClassName
forEach
在IE8中没有实现。如果OP需要跨浏览器解决方案,则应使用库。如果不需要对IE8的支持,请使用我的代码。使用
queryselectoral
,您将获得IE8支持,只要您摆脱
.slice
到数组的转换和
forEach
@patrick如果需要对IE8的支持(假设地说),您可以拥有一个
IE8.js
文件(通过条件注释推送到IE8),其中将包含手动实现的
getElementsByClassName
forEach
,等等。仅用于IE8。这样,这些方法仍然可以使用(尽管IE8如此)。至于slice黑客,可能更合理的做法是使用
toArray
实用函数(然后通过手动复制所有索引的引用以“慢方式”完成)。