2016-03-29 5 views
0

javascriptを使用してブックマークレットを作成すると、ページ内のすべてのテキストボックスの最大長を取得できます。すべてのIDと最大長を指定して、ページの下に表を印刷します。テキストボックスの最大長をすべて取得できるブックマークレットを作成し、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); 
}) 

答えて

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:を配置します。それを関数に格納する必要はありません。あなたがしたい場合はできます。

+0

Thx。それは私の問題を解決する。 –

+0

@JojoYeahこれがあなたの質問を解決した場合、答えとしてマークしてください。ありがとう! –

関連する問題