表格追加元素,在Html与后台交互是十分常用的,不过有很多框架都封装掉了,这里就猜一猜它们可能是怎么实现的。
(PS:我做后端的,确实不怎么关注前端,哪一种实现最好,效率最高,望告知)
关于页面事件丢失的问题,只要注意函数的调用顺序即可。
感觉还可以通过document.createElement,再appendChild的方式来实现,感兴趣地可以试一下。
JQuery实现
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>表格追加内容</title> <script type="text/javascript" src="../js/jquery.min.js"></script> <style type="text/css"> .mytr { font-size: 13px; color: #666; background-color: #ecf0f5; } </style> <title>修改Html属性</title> </head> <body> <table id="mytable"> <tr id="mytr" class="mytr" onclick="alerts()"> <td>row1</td> </tr> </table> <script> function alerts() { alert("click"); } $("#mytable").append("<tr id='mytr' class = 'mytr' onclick='alerts()'><td>row2</td></tr>"); </script> </body> </html>
JavaScript实现
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>表格追加内容</title> <style type="text/css"> .mytr { font-size: 13px; color: #666; background-color: #ecf0f5; } </style> <title>修改Html属性</title> </head> <body onload="appr()"> <table id="mytable"> <tr id="mytr" class="mytr" onclick="appr()"> <td>row1</td> </tr> </table> <script type="text/javascript"> function alerts() { alert("click"); } function appr(){ var table=document.getElementById('mytable').insertRow(0); var row1=table.insertCell(0); row1.className = 'mytr'; row1.id = 'mytr'; row1.onclick = alerts; row1.innerHTML="<td>row2</td>"; } </script> </body> </html>