已解决

【精华】对象树的问题?已解决

学员:徐豫锋提问时间:2008-06-20 21:35:06

function btnAdd_onclick() {
var txt=document.getElementById("txtUserInput");
var content=document.getElementById("content");//这句什么意识,前面没有content对象啊,不明白?
var p=document.createElement("p");//p 是关键字吗?<p>吗?
p.innerHTML=txt.value;
content.appendChild(p);//这里是不是有对象树的操作,为什么??
txt.select();
}
function btnDelete_onclick() {
var paraNo=document.getElementById("txtParaNo").value;
var content=document.getElementById("content");
if(parseInt(paraNo)>content.childNodes.length)
alert("最大段落序号为"+content.childNodes.length);
else
content.removeChild(content.getElementsByTagName("p")[parseInt(paraNo)-1]);
}老师帮一下忙,最好能逐句解释一下,谢谢

采纳为答案

回答人:polarstar (.NET学习顾问)回答时间:2008-06-22 11:54:07

function btnAdd_onclick() {
var txt=document.getElementById("txtUserInput");
/********js好像不支持这种注释,知道就OK了
IE执行document.getElementById(elementName)的时候,返回的是第一个name或者id等于txtUserInput的对象,并不总是是按照ID来查找的,IE很多不遵循国际标准,有时很烦人。
在fireFox中不存在这样的问题,fireFox执行document.getElementById("txtUserInput")的时候只查找id等于txtUserInput的对象,如果不存在则返回null。
*/
var content=document.getElementById("content");//页面中应该有id='content'的控件否则content=null,后面会出错。
var p=document.createElement("p");//是创建<p></p>
p.innerHTML=txt.value;//如果txt.value='ddd'的话,执行后就是<p>ddd</p>
content.appendChild(p);//架设content是div的话执行后相当于<div id='content'><p>ddd</p></div>
txt.select();
}
function btnDelete_onclick() {
var paraNo=document.getElementById("txtParaNo").value;
var content=document.getElementById("content");
if(parseInt(paraNo)>content.childNodes.length)//判断输入的数字是否超出content中<p></p>(子控件)的个数,防止出现越界访问。
alert("最大段落序号为"+content.childNodes.length);
else//没有越界,移除一个<p></p>
content.removeChild(content.getElementsByTagName("p")[parseInt(paraNo)-1]);
}

学员对该答案的评价 谢谢

其他回答