• childnodes 兼容性问题


    解答一
    childNodes 这个方法基本没法用,存在严重的浏览器兼容性问题,里面可能包含了很多没用的空节点,所以你用childNodes(索引)获取元素是不对的。
    table中获取tr、td等还是挺方便的像这样:
    tr=tbs.rows[索引]
    td=tbs.rows[索引].cells[索引]
    tbody=tbs.rows[0].parentNode
    如果要获取td里面没有id的元素比如input那只能用这个方法:
    var list=tbs.rows[索引].cells[索引].getElementsByTagName('input');
    input=list[索引]

    解答二
    firefox下面,使用childNodes获取节点,它会将空格符、回车符、换行符也看做一个文本节点,
    解决方案:
    1.火狐下面要利用nodeType来过滤掉这些无用的节点。
    Java代码  
    function show(n){
       var rows=[];
       var one = document.getElementByIdx_x('one_1').parentNode.childNodes;
       for(i=0;i<one.length;i++){
         if(one[i].nodeType==1 && one[i].tagName){
          rows.push(one[i]);
         }
       }
       rows[1].style.background='green';
      }
    nodeType==1的时候表名它是一个对象节点。



    2.获取节点时getElementsByTagName取代childNodes
    Java代码
    1. //只支持IE,childNodes的长度在firefox不一样   
    2. // node1.childNodes[0].getElementsByTagName("input")[1].checked =true;   
    3. // node2.childNodes[0].getElementsByTagName("input")[1].checked =true;   
    4. //只支持全部浏览器   
    5.   node1.getElementsByTagName("td")[0].getElementsByTagName("input")[1].checked =true;   
    6.     node2.getElementsByTagName("td")[0].getElementsByTagName("input")[1].checked =true;  
  • 相关阅读:
    个人工作总结02
    个人工作总结01
    第七周学习进度条
    构建之法阅读笔记03
    第六周学习进度条
    团队开发介绍
    最大连通子数组的和
    四则运算-安卓版
    第五周学习进度条
    构建之法阅读笔记02
  • 原文地址:https://www.cnblogs.com/xjt360/p/4028027.html
Copyright © 2020-2023  润新知