為什么這樣顯示的是undefined呢?
<!DOCTYPE?HTML> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"> <title>無(wú)標(biāo)題文檔</title> </head> <body> <ul?id="con"> <li?id="lesson1">javascript ??<ul>? ??????<li?id="tcon">?基礎(chǔ)語(yǔ)法</li> ??????<li>流程控制語(yǔ)句</li> ??????<li>函數(shù)</li> ??????<li>事件</li> ??????<li>DOM</li> ??</ul> </li> <li?id="lesson2">das</li> <li?id="lesson3">dadf</li> <li?id="lesson4">HTML/CSS? ??<ul> ????<li>文字</li> ????<li>段落</li> ????<li>表單</li> ????<li>表格</li>?? ??</ul> </li>??? </ul>?? <script??type="text/javascript">???? ???var?mylist?=?document.getElementById("tcon");? ????document.write(mylist.parentNode.parentNode.parentNode.lastChild.innerHTML) </script>? </body> </html>
為什么這樣沒(méi)有反應(yīng)了?
2016-09-02
你這個(gè)返回的并不是最后一個(gè)li,而是最后一個(gè)子節(jié)點(diǎn);
我在谷歌,ie11,火狐瀏覽器上測(cè)試,返回的都是一個(gè)“#text” 的節(jié)點(diǎn),里面的值是個(gè)“?”換行符;
同樣,firstChild也是“?”換行符;
你可以自己封裝一個(gè) 節(jié)點(diǎn)類型判斷 的方法,判斷nodeType是否為1先;然后再用lastChild;
或者你把最后一個(gè)</li>和</ul>連起來(lái)寫(xiě),別換行:
? ? ? ?<li>段落</li>
? ? ? ?<li>表單</li>
? ? ? ?<li>表格</li>
? ?</ul>
</li></ul> ?也就可以正確返回;
2016-09-02
2016-09-02
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無(wú)標(biāo)題文檔</title>
</head>
<body>
<ul id="con">
<li id="lesson1">javascript
? <ul>?
? ? ? <li id="tcon"> 基礎(chǔ)語(yǔ)法</li>
? ? ? <li>流程控制語(yǔ)句</li>
? ? ? <li>函數(shù)</li>
? ? ? <li>事件</li>
? ? ? <li>DOM</li>
? </ul>
</li>
<li id="lesson2">das</li>
<li id="lesson3">dadf</li>
<li id="lesson4">HTML/CSS?
? <ul>
? ? <li>文字</li>
? ? <li>段落</li>
? ? <li>表單</li>
? ? <li>表格</li> ?
? </ul>?
</li></ul> ?
<script ?type="text/javascript"> ? ?
? ?var mylist = document.getElementById("tcon");?
document.write(mylist.parentNode.parentNode.parentNode.lastChild.innerHTML);
</script>?
</body>
</html>
我按照你的敲了一遍,我的沒(méi)問(wèn)題,你對(duì)比下