關(guān)于insertBefore()方法的,為什么這樣不行
<!DOCTYPE?HTML> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"> <title>無標題文檔</title> </head> <body> <ul?id="test"><li>JavaScript</li><li>HTML</li></ul>? ? <script?type="text/javascript"> ??var?otest?=?document.getElementById("test");?? ??var?node=document.getElementsByTagName("li").innerHTML="HTML"; ??var?newnode=document.createElement("li"); ??newnode.innerHTML="PHP"; ??otest.insertBefore(newnode,node); ?? </script>? </body> </html>
2016-03-05
第一:var?node=document.getElementsByTagName("li").innerHTML="HTML";
document.getElementsByTagName("li")是獲取標簽名為li的標簽組合,相當(dāng)于獲得一個節(jié)點數(shù)組,不可以直接用innerHTML屬性
第二:題目要求在內(nèi)容為HTML標簽插入新標簽,但是演示直接給了第一句:var?otest?=?document.getElementById("test"),因此需要通過它來獲取插入的節(jié)點的,內(nèi)容為HTML的標簽是otest節(jié)點的第二個子節(jié)點也是最后一個子節(jié)點,所以用otest,childNodes[1]或者otest.lastChild獲取插入位置的節(jié)點:otest.insertBefore(newnode,otest.childNodes[1])或者otest.insertBefore(newnode,otest.lastChild)