日期:2014-05-16  浏览次数:20376 次

求助:insertAdjacentHTML提示"用于此操作的原始HTML无效"
两段源代码的顺序不一样居然导致运行结果不一样。请各位帮忙指出问题。
源代码如下:
HTML code

<script type="text/javascript">
//添加作者
var current=1; 
function new_author() 
{ 
old=current; 
current=current + 1;
//设置插入的内容 
str1="<div id=s" + current + "><li>作者" + current + "<input type=text maxlength=10 size=10 name=author/></li></div>";
strX="s"+ old; 
eval("document.all." + strX + ".insertAdjacentHTML(\"AfterEnd\",str1)"); 
}
</script>

</head>
<body>
<ul>
    <div id="s1">
    <li id="del_li">
        作者1:&nbsp;&nbsp;&nbsp;
        <input type="text"  maxlength="30" size="10"  name="author" />
        <button onclick="return new_author()">添加作者</button>
        &nbsp;&nbsp;
        <button onclick="return del_author()">删除作者</button>    
    </li>
    </div>

    <li>
        通信作者:
        <input type="text"  maxlength="30" size="10"  name="communication_author" />
    </li>
<ul>
</body>


这段代码运行没有任何问题。但是把<li>通信作者...</li>这段代码放到<div id="s1">...</div>这段代码前面去,运行时出现错误:用于此项操作的原始HTML无效。
HTML code

<script type="text/javascript">
//添加作者
var current=1; 
function new_author() 
{ 
old=current; 
current=current + 1;
//设置插入的内容 
str1="<div id=s" + current + "><li>作者" + current + "<input type=text maxlength=10 size=10 name=author/></li></div>";
strX="s"+ old; 
eval("document.all." + strX + ".insertAdjacentHTML(\"AfterEnd\",str1)"); 
}
</script>

</head>
<body>
<ul>
    <li>
        通信作者:
        <input type="text"  maxlength="30" size="10"  name="communication_author" />
    </li>

    <div id="s1">
    <li id="del_li">
        作者1:&nbsp;&nbsp;&nbsp;
        <input type="text"  maxlength="30" size="10"  name="author" />
        <button onclick="return new_author()">添加作者</button>
        &nbsp;&nbsp;
        <button onclick="return del_author()">删除作者</button>    
    </li>
    </div>
<ul>
</body>


请问这是为什么?
我的环境是win xp sp2 + IE6。

------解决方案--------------------
你把人家的DOM结构更改了呗= =.
你代码给的也不全 不知道怎么帮你改