li 标签 取最后一个会有问题

来源:百度知道 编辑:UC知道 时间:2024/05/02 17:10:23
<HTML>
<script type="text/javascript">
function makeList(){
var oLi=document.getElementsByTagName("li");
var oTextArea=document.getElementById("text1");
for(i=0;i<oLi.length;i++){
var otext=document.createTextNode(oLi[i].innerText);
alert(oLi[i].innerText);
oTextArea.appendChild(otext);
}
}

</script>
</HEAD>

<BODY>
<div id="div1">
<p>hello<b>world!</b></p>
<ul>
<li>List item1</li>
<li>List item2</li>
<li>List item3</li>
<ul>
<div>
<textarea rows="10" cols="40" id="text1"></textarea><br/>
<input type="button" value="Make List" onclick="makeList()">
</BODY>
</HTML>

上面的代码在点击按钮

我测出是怎么回事了。 问题就是你的HTML代码写的不标准,JS部分没错,逻辑也正确,你的<ul>和<div>标签都没有结束标记,似乎最后一个li把后面的textarea里的内容都算进去了。

具体的不了解是为什么,尽管第三个li标签写的很完整。

你试试把第二个div标签写完整</div>或者把<ul>标签也完整</ul>之后就可以正常alert了

希望对你有帮助!

最后一步创建的是文本框里面所有的内容, var otext=document.createTextNode(oLi[i].innerText);