<script>... function testInsert(sWhere, obj) ...{ var insertStr = "<input type='text'/>"; // var obj = document.getElementById("test"); obj.insertAdjacentHTML(sWhere, insertStr); } function test() ...{ var obj = document.getElementById("test5"); var str = "<input type='text'/>"; obj.insertAdjacentHTML("beforeEnd", "fdsa"); }</script><html> <table> <tr> <td>aaa aa<span id = "test1" onclick="testInsert('BeforeEnd', this)"> BeforeEnd <span>cc cccccc</td> </tr> <tr> <td>aaa aa<span id = "test2" onclick="testInsert('beforebegin', this)"> beforeBegin <span>cc cccccc</td> </tr> <tr> <td>aaa aa<span id = "test3" onclick="testInsert('afTerBegin', this)"> afterBegin <span>cc cccccc</td> </tr> <tr> <td>aaa aa<span id = "test4" onclick="testInsert('afterEnd', this)"> afterEnd <span>cc cccccc</td> </tr> <tr> <td><span id="test5" onclick="test();">test</span></td> </tr> </table></html>在使用动态插入的时候,不能在插入代码中有<tr>或者<td>存在,例如: 把" var str = "<input type='text'/>"; 改成 var str = "<tr><td><input type='text'/></td></tr>";否则就不要想插了