Estoy escribiendo un código de script Java que agregará dinámicamente una columna de casilla de verificación en una tabla ya existente en html.
Mi código html es así:
<!DOCTYPE html> <html> <head> <style> table, td { border: 1px solid black; } </style> <title>PHP MyAdmin</title> </head> <body> <table border="1"> <tr> <th>Email_id</th> <th>Email_content</th> </tr> <tr> <td>akshay1234530@yahoo.com</td> <td>bla bla</td> </tr> <tr> <td>ohm3966@gmail.com</td> <td>bla bla</td> </tr> </table> </body> </html>Y el código de JavaScript que estoy escribiendo para agregar una columna de casillas de verificación a esta tabla creada en html dinámicamente es el siguiente:
tbl = document.getElementsByTagName("body")[0]; tr = tbl.getElementsByTagName("tr"); for (i = 1; i < tr.length; i++) { tr.appendChild(document.createElement('td')); var checkbox = document.createElement("INPUT"); checkbox.type = "checkbox"; tr.cells[2].appendChild(checkbox); tbl.appendChild(tr); }También quiero especificar un método de clic en estas casillas de verificación. Gracias por adelantado
Aquí hay una respuesta usando jQuery, ya que lo etiquetó así, asumo que jQuery funcionará.
$("#addColumn").click(function () { $("tr:first").append("<td>MyTitle</td>"); $("tr:not(:first)").append("<td>Sample Element</td>"); //$("tr:not(:first)").append("<td><input type='checkbox' />Sample Element</td>"); }); <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <!DOCTYPE html> <html> <head> <style> table, td { border: 1px solid black; } </style> <title>PHP MyAdmin</title> </head> <body> <table border="1"> <tr> <th>Email_id</th> <th>Email_content</th> </tr> <tr> <td>akshay1234530@yahoo.com</td> <td>bla bla</td> </tr> <tr> <td>ohm3966@gmail.com</td> <td>bla bla</td> </tr> </table> </body> </html> <button id="addColumn">Add Column</button>for (i = 1; i < tr.length; i++) { // create the cell var td = document.createElement('td'); // create the checkbox var input = document.createElement('INPUT'); input.type = 'checkbox'; // append checkbox to cell td.appendChild(input); // append cell to row tr.appendChild(td); }Aquí hay una solución jQuery (ya que la etiquetó)
tbl = $("#theTable"); $("#theTable tr").each(function(){ $(this).append("<td><input type='checkbox'/></td>") }); /* tbl = document.getElementsByTagName("body")[0]; tr = tbl.getElementsByTagName("tr"); for (i = 1; i < tr.length; i++) { tr.appendChild(document.createElement('td')); var checkbox = document.createElement("INPUT"); checkbox.type = "checkbox"; tr.cells[2].appendChild(checkbox); tbl.appendChild(tr); }*/ table, td { border: 1px solid black; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table border="1" id="theTable"> <tr> <th>Email_id</th> <th>Email_content</th> </tr> <tr> <td>akshay1234530@yahoo.com</td> <td>bla bla</td> </tr> <tr> <td>ohm3966@gmail.com</td> <td>bla bla</td> </tr> </table>