Javascript 在for循环中获取html元素
此for循环不运行。这个简单的代码应该获取页面上的所有H5元素,然后获取innerHTML,但代码从不运行for循环Javascript 在for循环中获取html元素,javascript,for-loop,Javascript,For Loop,此for循环不运行。这个简单的代码应该获取页面上的所有H5元素,然后获取innerHTML,但代码从不运行for循环 function myFunction() { var x = document.getElementsByTagName("h5").length; alert(x); var y; var z; for (i = 0; i < x.length; i++) { y = document.getElementsBy
function myFunction() {
var x = document.getElementsByTagName("h5").length;
alert(x);
var y;
var z;
for (i = 0; i < x.length; i++) {
y = document.getElementsByTagName("h5")[i];
z = y.innerHTML;
alert(z + " this");
}
}
您正在查找x上的.length属性,它本身就是一个长度数字。我想你的意思是:
var x = document.getElementsByTagName("h5");
当然了
for (i = 0; i < x; i++) {
取决于你以后对x做了什么
var x = document.getElementsByTagName("h5").length;
// ...
for (i = 0; i < x.length; i++) {
你打了两次电话给.length。其他答案都是正确的,但这里有一些重构和解释
function myFunction() {
// Taking out the '.length' means you have a reference to all the h5s
var x = document.getElementsByTagName("h5");
alert(x);
var y;
var z;
//Now since you're not including the .length above, this loop is correct
for (i = 0; i < x.length; i++) {
//You since x is a reference to all the h5s now you don't
//have to search for them again.
y = x[i];
z = y.innerHTML;
alert(z + " this");
}
}
重要的是只使用一个getElementsByTagName调用,因为这是一个相对昂贵的函数。如果可以避免的话,你肯定不想在循环中调用它。通常,为了编写好的javascript,您希望尽可能多地重用对DOM元素的引用,因为DOM比javascript慢得多 也许你应该取消这个方法?我的功能;我认为,在for循环中,它应该是I=0;i