例如
For each div in body
div.innerHtml = "poo"
next div
这显然是伪代码,但演示了我想要做的事情。
答案 0 :(得分:35)
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";
}
答案 1 :(得分:27)
<强> NodeList.forEach 强>
10
querySelectorAll
返回展开NodeList
方法的静态非实时forEach
:
const elements = document.querySelectorAll('div');
elements.forEach( el => {
el.innerHTML = "foo";
});
Document.querySelectorAllMDN
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";
});
Destructuring assignmentMDN
Document.querySelectorAll()MDN
Array forEach.call
的 9 强>
var elements = document.querySelectorAll('div');
[].forEach.call(elements, function( el ) {
el.innerHTML = "foo";
});
For循环
var elements = document.getElementsByTagName('div');
for (var i=0; i<elements.length; i++) {
elements[i].innerHTML = "foo";
}
答案 2 :(得分:4)
轻松工作:
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)
})
答案 3 :(得分:1)
在ES2015中采用新Array.from()
方法和arrow functions的备用版本:
Array.from(document.body.getElementsByTagName("div")).forEach(a=>a.innerHTML='foo');
&#13;
<div></div>
<div></div>
<div>Test</div>
<div></div>
<div>Hello</div>
<div>World</div>
&#13;
如果大小对你来说绝对至关重要,那么这个解决方案只有84个字节,而@ Roko的答案为113个,@ gdoron的答案为120个。
在这种情况下,jQuery可以缩短这一点:
$("body div").html('foo');
&#13;
<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>
&#13;
现在只有26个字节!
答案 4 :(得分:0)
对于ES6
Invalid token