封装函数,解决childNodes兼容性问题 解决高级浏览器中节点中空白符问题

Love The Way You Lie 2021-09-02 06:28 250阅读 0赞
  1. function getChildNodes(dom) {
  2. /**
  3. * 步骤:
  4. * 1: 循环查看dom的所有子节点, 查看有没有文本类型
  5. * 2: 如果有文本类型, 定义正则表达式去匹配
  6. * 3: 定义一个数组,存储不是空白符的节点
  7. * 4: 将不是空白符的节点存储起来
  8. * 5: 返回该数组
  9. **/
  10. // 定义数组
  11. var arr = [];
  12. for (var i = 0; i < dom.childNodes.length; i++) {
  13. // 查看子节点中有没有文本类型
  14. // console.log(dom.childNodes[i].nodeType);
  15. // 判断是否是文本节点
  16. if (dom.childNodes[i].nodeType == 3) {
  17. // 是文本类型
  18. // 定义正则表达式去匹配
  19. var reg = /^\s+$/;
  20. // 验证
  21. if (reg.test(dom.childNodes[i].data)) {
  22. // 说明是纯空白
  23. console.log("第" + i + "项是纯空白");
  24. } else {
  25. // 说明不是空白符, 进入到数组中
  26. arr.push(dom.childNodes[i]);
  27. }
  28. } else {
  29. // 不是文本类型 可以直接进入数组中
  30. arr.push(dom.childNodes[i]);
  31. }
  32. }
  33. // 循环完毕之后,返回数组
  34. return arr;
  35. }

发表评论

表情:
评论列表 (有 0 条评论,250人围观)

还没有评论,来说两句吧...

相关阅读

    相关 解决web页面浏览器兼容问题

    浏览器兼容性问题是每个做web页面常常遇到的问题,而且还不得不解决的问题。造成这种局面的主要原因就是各大公司都推出自己的浏览器,而他们在某些方面的规范还不一样。 我们现在常