创建一个可以检索所有文本框最大长度的书签,然后在表格中打印id和max length

时间:2016-03-29 16:52:59

标签: javascript jquery html bookmarklet bookmarks

我想使用javascript创建一个bookmarklet,它可以检索页面中所有文本框的最大长度,然后在页面下方打印一个表格,其中包含所有id和最大长度。

这是我的代码,但它没有打印任何内容。

javascript: (function() {
  var body =document.getElementsByTagName('body')[0];
    var tbl = document.createElement('table');
  var tbdy = document.createElement('tbody');
    var D = document,
        i, f, j, e;
    for (i = 0; f = D.forms[i]; ++i)
        for (j = 0; e = f[j]; ++j)
            if (e.type == "text") S(e);
    function S(e) {

           var  l= document.getElementById(e.id);
            var x = document.getElementById(e.maxlength);
           var tr=document.createElement('tr');
           var td1=document.createElement('td');
           var td2=document.createElement('td');
           td1.appendChild(document.createTextNode(l));
           td2.appendChild(document.createTextNode(x));
           tr.appendChild(td1);
           tr.appendChild(td2);
          tbdy.appendChild(tr);

    }
  tbl.appendChild(tbdy);
  body.appendChild(tbl);
})

1 个答案:

答案 0 :(得分:0)

这实际上可以比你拥有它简单得多。

工作jsfiddle:https://jsfiddle.net/cecu3daf/

您希望获取所有输入并对其进行循环。从中您可以动态创建一个表并将其附加到document.body

的末尾
var inputs = document.getElementsByTagName("input"); //get all inputs
var appTable = document.createElement("table"); //create a table
var header = appTable.createTHead(); //create the thead for appending rows
for (var i=0; i<inputs.length; i++) { //run a loop over the input elements
  var row = header.insertRow(0); //insert a row to the table
  var cell = row.insertCell(0); //insert a cell into the row
  cell.innerHTML = inputs[i].maxLength; //input data into the cell
  var cell = row.insertCell(0);
  cell.innerHTML = inputs[i].id;
}
document.body.appendChild(appTable); //append the table to the document

要将其设为书签,只需预先放置javascript:即可。没有必要将它包含在函数中。如果您愿意,可以。