例如
For each div in body
div.innerHtml = "poo"
next div
这显然是伪代码,但演示了我正在尝试做的事情。
编辑分享它让我非常高兴看到 9 岁的问题,看看我已经走了多远,这个问题仍然有益于其他人。
例如
For each div in body
div.innerHtml = "poo"
next div
这显然是伪代码,但演示了我正在尝试做的事情。
编辑分享它让我非常高兴看到 9 岁的问题,看看我已经走了多远,这个问题仍然有益于其他人。
var elements = document.getElementsByTagName('div');
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "foo";
}
如果您只想查看<body>
:
var elements = document.body.getElementsByTagName('div');
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "foo";
}
NodeList.forEach 10
querySelectorAll
返回一个静态的非实时NodeList
暴露forEach
方法:
const elements = document.querySelectorAll('div');
elements.forEach( el => {
el.innerHTML = "foo";
});
Document.querySelectorAll MDN
NodeList.prototype.forEach() MDN
Array.from 9
const elements = document.querySelectorAll('div');
Array.from(elements).forEach( (el) => {
el.innerHTML = "foo";
});
数组解构 9
const elements = document.querySelectorAll('div');
[...elements].forEach( el => {
el.innerHTML = "foo";
});
解构赋值MDN
Document.querySelectorAll() MDN
数组 forEach.call 9
var elements = document.querySelectorAll('div');
[].forEach.call(elements, function( el ) {
el.innerHTML = "foo";
});
循环
var elements = document.getElementsByTagName('div');
for (var i=0; i<elements.length; i++) {
elements[i].innerHTML = "foo";
}
轻松的工作:
NodeList.prototype.forEach = HTMLCollection.prototype.forEach = Array.prototype.forEach;
现在:
// VanillaJS / JavaScript puro
var lista_de_divs = document.querySelectorAll('div')
lista_de_divs.forEach(function (div, i) {
// código...
console.log(i, div)
})
// jQuery
$('div').forEach(function (div, i) {
// código...
console.log(i, div)
})
ES2015 中具有新Array.from()
方法和箭头函数的替代版本:
Array.from(document.body.getElementsByTagName("div")).forEach(a=>a.innerHTML='foo');
<div></div>
<div></div>
<div>Test</div>
<div></div>
<div>Hello</div>
<div>World</div>
如果大小对您来说绝对至关重要,那么这个解决方案只有 84 个字节,而 @Roko 的答案为 113 字节,@gdoron 的答案为 120 字节。
在这种情况下,jQuery 可以进一步缩短:
$("body div").html('foo');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
<div></div>
<div>Test</div>
<div></div>
<div>Hello</div>
<div>World</div>
现在只有 26 个字节!
对于 ES6
let elements = document.body.getElementsByTagName('div');
Array.prototype.forEach.call(elements, e => {
e.innerHTML = "foo";
});