zoukankan      html  css  js  c++  java
  • 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;  
  • 相关阅读:
    动态SQL和PL/SQL的EXECUTE选项分析
    PL/SQL开发中动态SQL的使用方法
    windows 快捷调用
    Windows PE 工具
    面向对象(OOP)五大基本原则
    图像几何变换(geometric transformation)
    BP神经网络模型及梯度下降法
    人工神经元模型及常见激活函数
    Python: PS 滤镜--高反差保留 (High pass)
    Python: PS 滤镜--碎片特效
  • 原文地址:https://www.cnblogs.com/xjt360/p/4028027.html
Copyright © 2011-2022 走看看