< 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>"; 否则就不要想插了