一个令人苦恼的问题
为什么 不能显示 22222 啊,,
把var menuItemContainer=document.getElementById( "tr1 ");
换位var menuItemContainer=document.getElementById( "t1 ");
相对于层就能显示啊?
异常奇怪
<head>
<script language= "javascript ">
function test(){
objDragItem = document.createElement( "tr ");
var menuItemContainer=document.getElementById( "tr1 ");
menuItemContainer.insertBefore(objDragItem);
objDragItem.outerHTML = " <tr> <td> 22222 </td> </tr> ";
}
</script>
</HEAD>
<BODY bgcolor= "#FFFFFF " text= "#000000 " leftmargin= "0 " topmargin= "0 ">
<DIV id= "t1 "> </DIV>
<table>
<tr id= "tr1 ">
<td> 111 <td>
<tr>
</table>
</BODY>
<script>
test();
</script>
------解决方案--------------------insertBefore()需要两个参数,第一个参数(元素)插在第二个参数(元素)前面
或你可以用 父元素.appendChild (一个参数);加在最后面,对于innerHTML或outerHTML先赋值,再insertBefore/appendChild
------解决方案--------------------对于用createElement方法创建的元素,不能用outerHTML或innerHTML改变其内容
所以下面的层可以
但你可以这样:
<html>
<head>
</HEAD>
<script language= "javascript ">
function test(){
objDragItem = document.createElement( "tr ");
myTd= document.createElement( "td ");
myText=document.createTextNode( "22222 ");
myTd.appendChild(myText);
objDragItem.appendChild(myTd);
var menuItemContainer=document.getElementById( "tr1 ");
menuItemContainer.parentNode.insertBefore(objDragItem,menuItemContainer);
}
</script>
<BODY bgcolor= "#FFFFFF " text= "#000000 " leftmargin= "0 " topmargin= "0 ">
<DIV id= "t1 "> 单击添加! </DIV>
<table>
<tr id= "tr1 ">
<td> 111 <td>
<tr>
</table>
</BODY>
<script>
document.body.onclick=test;
</script>
</html>
顺便更正一下insertBefor的用法:)
------解决方案--------------------谁说createElement 出来的元素不能用outerHTML或innerHTML改变其内容
你证实过了么,我做过很多项目都可以动态改变的
------解决方案------------------