运行 for 循环以打印 JavaScript 中的输入框类型

Running a for loop to print type of input boxes in JavaScript

本文关键字:输入 类型 JavaScript for 循环 打印 运行      更新时间:2023-09-26

我有这个想法,我想尝试一下。我有一个表单,里面有一定数量的输入元素。我想运行一个函数,该函数将使用两个 for 循环打印出输入元素的类型。这是我尝试过的代码

                  function check(){         
                     var i = document.forms.length;
                     var j = document.forms[i-1].elements.length;
                    //alert(i);
                   //  alert(j);
                    for (var k=0; k<=i;k++){
                    //alert(l);
                         for (var l=0;l<=j;l++){  
                          //alert(l);
                          alert(document.forms[k].elements[l].type);
                          }
                      }
                  }  

代码仅打印出窗体中第一个元素的类型。我做错了什么?

获取

页面中的所有表单,遍历每个表单,在第一个循环中获取特定于当前正在迭代的表单的元素,循环通过元素并获取类型,尝试执行以下操作:

var frms = document.forms;
for(var f = 0; f < frms.length; f++ ) {
    var elems = frms[f].elements;
    for(var e = 0; e < elems.length; e++ ) {
        console.log( elems[e].type );
    }
}

演示:: js小提琴

你能使用 querySelectorAll?

var elems = document.querySelectorAll("form input");
for(var i in elems) {
  console.log(elems[i].type);
}

如果没有,您需要在第一个for循环中计算表单的元素:

function check(){         
  var i = document.forms.length;       
  for (var k=0; k<i;k++){
    // Check the element length here
    var j = document.forms[k].elements.length;
    for (var l=0;l<j;l++){  
      alert(document.forms[k].elements[l].type);
    }
  }
 }  

我尝试了您的脚本,并进行了以下修改:

第一个循环for (var k=0; k<=i-1;k++) {

第二环for (var l=0;l<=j-1;l++){

否则,您会出现错误,导致所有循环执行 +1 次。

我写了简单的jsfiddle示例 - http://jsfiddle.net/REb64/

      function check(){   
        for (var i=0; i < document.forms.length; i++){
          for (var j=0; j < document.forms[i].elements.length; j++){
            alert(document.forms[i].elements[j].type);
          }
        }
      }