当前位置:首页 > 开发 > Web前端 > 前端 > 正文

childNodes behavior diffrent in IE & FF

发表于: 2011-09-02   作者:chujiazhen   来源:转载   浏览:
摘要: IE and FF count in different ways the childNodes. FF (DOM compliant mode) counts even the possible textNodes (the gaps between tags) while IE counts only some of them. To avoid this, use one the so
IE and FF count in different ways the childNodes. FF (DOM compliant mode) counts even the possible textNodes (the gaps between tags) while IE counts only some of them.

To avoid this, use one the solutions:
1. use getElementsByTagName() rather than childNodes[]
2. use a while loop and nodeType attribute to check whether a child is a tag or a text
3. use a "gaps cleaner" code onload :
4. manually clear the gaps, of course
Code:

var notWhitespace = /\S/;
function cleanWhitespace(node) {
  for (var x = 0; x < node.childNodes.length; x++) {
    var childNode = node.childNodes[x]
    if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) {
// that is, if it's a whitespace text node
      node.removeChild(node.childNodes[x])
      x--
    }
    if (childNode.nodeType == 1) {
// elements can have text child nodes of their own
      cleanWhitespace(childNode)
    }
  }
}
}

childNodes behavior diffrent in IE & FF

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号