求指教,錯在哪了?
我的為什么會輸出“undifined”?、?
<script type="text/javascript">
? ? var x=document.getElementById("con");
? ? var y = x.firstChild.innerHTML;
? ? var z = x.lastChild.innerHTML;
? ? document.write(y+"<br/>"+z);
</script>
我的為什么會輸出“undifined”?、?
<script type="text/javascript">
? ? var x=document.getElementById("con");
? ? var y = x.firstChild.innerHTML;
? ? var z = x.lastChild.innerHTML;
? ? document.write(y+"<br/>"+z);
</script>
2017-01-28
舉報
2017-02-14
因為獲取到的第一個和最后一個節(jié)點都是空的文本節(jié)點,所以顯示它的內(nèi)容會是? undefined.
<div id="con">/*第一個文本節(jié)點*/
? <p>javascript</p>/*第二個文本節(jié)點*/
? <div>jQuery</div>/*第三個文本節(jié)點*/
? <h5>PHP</h5>/*第四個文本節(jié)點*/
?</div>
對于firefox、chrome、opera、safari瀏覽器來說,id為con的div下面總共有七個節(jié)點,四個文本節(jié)點再加上 p div h5三個元素節(jié)點,總共七個。
.firstChild 和.lastChild表示第一個和最后一個節(jié)點,從上面分析看出,它的第一個和最后一個節(jié)點都是文本節(jié)點,且內(nèi)容為空,所以會顯示成undefined.
想解決這個問題可以這么搞,代碼寫成一行:
<div id="con"><p>javascript</p><div>jQuery</div><h5>PHP</h5></div>
或者用ie瀏覽器也行。
2017-01-29
document.write(y+z+"<br>")
2017-01-29
123