2016-03-29 22 views
0

Ich möchte ein Bookmarklet erstellen, indem Sie Javascript verwenden, das die maximale Länge aller Textfelder auf der Seite abrufen kann Drucken Sie dann eine Tabelle unter der Seite mit der angegebenen ID und der maximalen Länge aus.Erstellen Sie ein Bookmarklet, das die maximale Länge des Textfelds abrufen und dann die ID und die maximale Länge in einer Tabelle drucken kann

Hier ist mein Code, aber es hat nichts gedruckt.

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); 
}) 

Antwort

0

Dies kann tatsächlich viel einfacher als Sie es getan haben getan werden.

Arbeiten jsfiddle: https://jsfiddle.net/cecu3daf/

Sie wollen alle Eingänge greifen und eine Schleife über sie laufen. Daraus können Sie dynamisch eine Tabelle erstellen und es bis zum Ende des 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 

Um es ein Lesezeichen zu machen, einfach die javascript: vor der Hand legen anhängen. Es ist nicht notwendig, es in eine Funktion zu integrieren. Sie können, wenn Sie möchten.

+0

Thx. Es löst mein Problem. –

+0

@JojoYeah Wenn das deine Frage gelöst hat, kannst du sie bitte als Antwort markieren? Vielen Dank! –