博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浏览器兼容getAttribute/setAttribute问题
阅读量:6038 次
发布时间:2019-06-20

本文共 1221 字,大约阅读时间需要 4 分钟。

最近在项目中遇到一个页面展示的问题,我在做一个查询结果的展示页面,页面要的效果如下:

查询出来默认展示的列表为VPDJ开头的那些数据,然后通过点击对应的VPDJ号,展示其对应的SJSD的数据。

我的做法是把所有数据都默认查询出来展示好,然后给SJSD开头的对应的表格所有的<tr>上加style="display:none"。在点击事件的时候,我一开始用的是DOM对象来处理:

  function isShow(voucherNo){

    var voucherNoTR = document.getElementById(voucherNo); 

    if(voucherNoTR.getAttribute("style") == ""){

      voucherNoTR.setAttribute("style")="display:none";

    }else{

      voucherNoTR.setAttribute("style")="";

    }

  }

当时我用的是ie9,一点问题都没有,可是后来测试的时候发现,在ie10、ie8中,点击VPDJ号并不能够展示下面内容,直接没有反应,后来网上查了一下资料刚刚知道原来ie10中,某些情况下,动态DOM元素的自定义属性无法再用 obj.getAttribute(name) 来获取,于是我把DOM对象换成了jquery对象:

  function isShow(voucherNo){

    var voucherNoTR = document.getElementById(voucherNo);

    if($(voucherNoTR).attr("style") == ""){

      $(voucherNoTR).attr("style","display:none");

    }else{

      $(voucherNoTR).attr("style","");

    }

  }

改完后,我测试了一下,在ie10中终于可以继续用了,但是在ie8中发现还是不行,后来发现,ie8中对setAttribute的方法支持的有些问题,使其兼容的方法:

  function isShow(voucherNo){

    var voucherNoTR = document.getElementById(voucherNo);

    if($(voucherNoTR).attr("style") == ""){

      voucherNoTR.style.cssText ="display:none;";

    }else{

      voucherNoTR.style.cssText ="";

    }

  }

 

转载于:https://www.cnblogs.com/bjxgp/p/4535315.html

你可能感兴趣的文章
Sql注入、文件上传与手机品牌信息抓取解决方案
查看>>
SQLServer跨库查询--分布式查询[转载]
查看>>
django错误-NoReverseMatch at /admin/
查看>>
Laravel中的信息验证 和 语言包
查看>>
折半查找法(二分查找 java版)
查看>>
工作两周年—--个人知识体系梳理
查看>>
win2003开启telnet
查看>>
php配置文件php.ini中文详解
查看>>
关于Tomcat配置相关总结
查看>>
安装PDO_MYSQL遇到的问题:error: Cannot find MySQL header files under
查看>>
CocoaPods最新安装及跳过pod setup快速安装教程
查看>>
必须用C模拟OS?
查看>>
JavaScript引入
查看>>
ARM9代码分析启动MAIN.C
查看>>
JSON
查看>>
4.3 Verilog练习(2)
查看>>
浅谈html5某些新元素的用途
查看>>
csv文件的操作
查看>>
搭建ssm框架项目基本原理和主要的配置文件小结
查看>>
导出表结构sql语句
查看>>