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;  
  • 相关阅读:
    Plot the figure of K-SVCR
    利用sklearn计算文本相似性
    djago 定义后台地址
    django admim后台不转义提交的html
    django 静态css js文件配置
    django后台的制作
    django 设置不带后缀的访问路径
    阿里云ECS服务器 常见问题(1)
    python 将word另存为txt
    python遍历某一位置所有文件夹中的文件
  • 原文地址:https://www.cnblogs.com/xjt360/p/4028027.html
Copyright © 2011-2022 走看看