otest.insertBefore(newnode,otest[i]); 这句话错了?
回复 lpn121:刚没认真看,你代码还是很有问题的
这么写才是正确的
var otest = document.getElementsByTagName("ul")[0];
var newnode = document.createElement("li");
newnode.innerHTML="PHP";
for(var i=0;i<otest.childNodes.length;i++){
if(otest.childNodes[i].innerHTML=="HTML"){
otest.insertBefore(newnode,otest.childNodes[i]);
}else{
document.write("no");
}
}
otest.insertBefore(newnode,otest[i]); 改成otest[i].parentNode.insertBefore(newnode,otest[i]);
var otest = document.getElementsByTagName("ul")[0].childNodes;
把后面的.childNodes去了,insertBefore你必须明确指出哪个节点,childNodes返回的是子节点NodeList