首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

nextSibling.nodeName为#text ?解决方法

2012-04-23 
nextSibling.nodeName为#text ???HTML code!DOCTYPE htmlPUBLIC -//W3C//DTD XHTML 1.0 Strict//ENhtt

nextSibling.nodeName为#text ???

HTML code
<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head><script language="javascript">        function change(obj)    {        if(obj.innerText=="[-]")        {            obj.innerText="[+]";                        //下面的alert我测试了下,当前对象的.parentNode.nextSibling.nodeName            //应该是ul,怎么弹出显示的是#text啊???            alert(obj.parentNode.nextSibling.nodeName);                        next(obj.parentNode).style.display = "none";        }else{            obj.innerText="[-]";            next(obj.parentNode).style.display = "block";        }    }        function next(elem) {//获得下一个元素节点        do {            elem = elem.nextSibling;        } while (elem && elem.nodeType != 1);//nodetype=1是元素节点         return elem;    }</script><link rel="stylesheet" type="text/css" href="css.css" /></head><body>    <div>        <p><span onclick="change(this)">[-]</span>aaa</p>        <ul>            <li>aaaaaa</li>            <li>aaaaaa</li>            <li>aaaaaa</li>        </ul>    <p><span onclick="change(this)">[-]</span>bbb</p>        <ul>            <li>bbbbbb</li>            <li>bbbbbb</li>            <li>bbbbbb</li>        </ul>    <p><span onclick="change(this)">[-]</span>ccc</p>        <ul>            <li>cccccc</li>            <li>cccccc</li>            <li>cccccc</li>        </ul>    </div></body></html>


[解决办法]
JScript code
 function change(obj)    {        if(obj.innerText=="[-]")        {            obj.innerText="[+]";                        //下面的alert我测试了下,当前对象的.parentNode.nextSibling.nodeName            //应该是ul,怎么弹出显示的是#text啊???            // alert(obj.parentNode.nextSibling.nodeName);            var test = obj.parentNode.nextSibling;            if(test.nodeName == "text"){                test = test.nextSibling;            }            alert(test.nodeName);                        next(obj.parentNode).style.display = "none";        }else{            obj.innerText="[-]";            next(obj.parentNode).style.display = "block";        }    } 

热点排行