這樣做有缺點(diǎn), 摘要部分的p的nextSibling可能是回車鍵。。。不一定是正文部分。加一段函數(shù)
function showdiv(obj){ //摘要部分 var x = obj.parentNode; //正文 var y = getNextElement(x); y.style.display = "block"; x.style.display = "none"; } function hidediv(obj){ } function getNextElement(node){ if(node.nextSibling.nodeType == 1){ //判斷下一個(gè)節(jié)點(diǎn)類型為1則是“元素”節(jié)點(diǎn) return node.nextSibling; } if(node.nextSibling.nodeType == 3){ //判斷下一個(gè)節(jié)點(diǎn)類型為3則是“文本”節(jié)點(diǎn) ,回調(diào)自身函數(shù) return getNextElement(node.nextSibling); } return null; }
2017-01-04
謝謝您的代碼,我嘗試了給x加了類名<p class="abc">然后alert(x.className)結(jié)果彈出abc證明obj.parentNode沒有任何問題取到了父節(jié)點(diǎn),然后y=x.nextSibling,接著用alert(y.className)結(jié)果彈出的是undefined,明顯父節(jié)點(diǎn)<p>的兄弟節(jié)點(diǎn)<div>并沒有取到,百思不得其解,看到了您的代碼突然想到了谷歌火狐瀏覽器空白回車都有可能會(huì)被取到從而content則會(huì)被忽視,這是js進(jìn)階篇中專門講過的,哎,這塊知識(shí)又忘了