為什么這樣顯示的是undefined呢?
<!DOCTYPE?HTML> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"> <title>無標題文檔</title> </head> <body> <ul?id="con"> <li?id="lesson1">javascript ??<ul>? ??????<li?id="tcon">?基礎語法</li> ??????<li>流程控制語句</li> ??????<li>函數</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>
為什么這樣沒有反應了?
2016-09-02
你這個返回的并不是最后一個li,而是最后一個子節點;
我在谷歌,ie11,火狐瀏覽器上測試,返回的都是一個“#text” 的節點,里面的值是個“?”換行符;
同樣,firstChild也是“?”換行符;
你可以自己封裝一個 節點類型判斷 的方法,判斷nodeType是否為1先;然后再用lastChild;
或者你把最后一個</li>和</ul>連起來寫,別換行:
? ? ? ?<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>無標題文檔</title>
</head>
<body>
<ul id="con">
<li id="lesson1">javascript
? <ul>?
? ? ? <li id="tcon"> 基礎語法</li>
? ? ? <li>流程控制語句</li>
? ? ? <li>函數</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>
我按照你的敲了一遍,我的沒問題,你對比下