Na przykładdla każdego typu elementu w organizmie
For each div in body
div.innerHtml = "poo"
next div
to oczywiście kod psuedo ale pokazuje, co próbuję zrobić.
Na przykładdla każdego typu elementu w organizmie
For each div in body
div.innerHtml = "poo"
next div
to oczywiście kod psuedo ale pokazuje, co próbuję zrobić.
var elements = document.getElementsByTagName('div');
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "foo";
}
Jeśli chcesz szukać tylko w <body>
:
var elements = document.body.getElementsByTagName('div');
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "foo";
}
'document.getElementsByTagName ('body') [0] === document.body';) –
@amnotiam. Tak, to było głupie ... :) dzięki. – gdoron
let elements= document.querySelectorAll('div');
Array.from(elements).forEach((el) => {
el.innerHTML = "foo";
});
Array.from()MDN
Document.querySelectorAll()
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";
}
alternatywnej wersji z nową metodą Array.from()
i arrow functions w ES2015:
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>
Jeśli rozmiar jest absolutnie kluczowa dla ciebie, to rozwiązanie jest tylko 84 bajtów, w porównaniu do 113 za odpowiedź @ Roko i 120 za @ gdoron.
W takim przypadku, jQuery mógłby skrócić to znacznie więcej:
$("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>
Teraz tylko 26 bajtów!
Interesujące przykłady, ale nie można mówić o * rozmiarze * i jQuery, ponieważ jest to biblioteka na szczycie JS i * ma swój rozmiar * we własnym zakresie. Kciuki w górę dla wersji JW BTW (mimo że użyłbym querySelectorAll;) –
łatwe zadanie:
NodeList.prototype.forEach = HTMLCollection.prototype.forEach = Array.prototype.forEach;
A teraz:
// 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)
})
odpowiedziałem na Twoje pytanie, ale należy zrobić w pierwszej lekcji ... – gdoron