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