childNodes的值竟然不一样???
- HTML code
<script>function sh(o){ alert(o.parentNode.childNodes.length);}</script><div> <div onclick='sh(this)'>标题</div> <div>内容</div></div>在IE中,返回的是2,是正确的,但用chrome,返回的却是4,造成程序出错,怎么会这样子呢???
[解决办法]
浏览器会把空白以及文字的地方看成一个textNode 而ie不会
[解决办法]
把alert(o.parentNode.childNodes.length);换成
alert(o.parentNode.children.length);
[解决办法]
实际上不能说IE的正确,chrome、firefox、opera都会把空白文本,比如回车换行、空字符串、制表符等解释为一个text节点。严格来说我比较讨厌IE,不是那么标准。
[解决办法]
- JScript code
function sh(o){ var obj=o.parentNode.firstChild; while(obj && obj.nodeType!=1)obj=obj.nextSibling; if(obj.className=="c"){ o.className="bg1"; obj.className="hidden"; } else{ o.className="bg2"; obj.className="c"; }}
[解决办法]
你换个取法,<div>
<div id="xx" onclick='sh(this)'>标题</div>
<div>内容</div>
</div>,加个id,然后
function sh(o)
{
// alert(o.parentNode.childNodes.length);
alert(document.getElementById("xx").innerHTML.length);
}就可以了