maya90
March 9, 2011, 5:21pm
1
I use jQuery all time now, never plain JS anymore… but now I need to do something in plain JS… how would I do something like this in plain JS?
$('h5').each(function(i) {
$(this).html(ppl.person[i].name);
});
$('p').each(function(i) {
$(this).html('By: ' + ppl.person[i].age);
});
thank you…
system
March 9, 2011, 6:15pm
2
Something like this should work:
var elems = document.getElementsByTagName("h5");
for (var i in elems) {
elems[i].innerHtml = ppl.person[i].age;
}
var elems = document.getElementsByTagName("p");
for (var i in elems) {
elems[i].innerHtml = "By: " + ppl.person[i].age;
}
They are nodelists not objects so you should NOT be using for.in as it will process the length along with the nodes.
var elems = document.getElementsByTagName("h5");
for (var i=elems.length-1; i >=0; i--) {
elems[i].innerHtml = ppl.person[i].age;
}
elems = document.getElementsByTagName("p");
for (i=elems.length-1; i >=0; i--) {
elems[i].innerHtml = "By: " + ppl.person[i].age;
}
That way your loop doesn’t try to process elems.length.innerHTML
maya90
March 9, 2011, 6:34pm
4
thank you very much for both responses… I can work w/this…
system
March 9, 2011, 6:40pm
5
felgall:
They are nodelists not objects so you should NOT be using for.in as it will process the length along with the nodes.
var elems = document.getElementsByTagName("h5");
for (var i=elems.length-1; i >=0; i--) {
elems[i].innerHtml = ppl.person[i].age;
}
elems = document.getElementsByTagName("p");
for (i=elems.length-1; i >=0; i--) {
elems[i].innerHtml = "By: " + ppl.person[i].age;
}
That way your loop doesn’t try to process elems.length.innerHTML
Right… been a while since I’ve used straight DOM lol. Thanks.