今天写了段JQuery选择器代码,为了找到Style 中含有display:none的元素,本以为很简单的事情,但在不同浏览器中运行时,就出现了问题。

  Html 代码:

  jQuery attr style 选择器在不同浏览器中的表现

  使用下面的选择器语句在谷歌中正常,但IE中获取不到正确的结果,怀疑写法在IE中不兼容,换了各种写法都不行,网上查找一番,无解。

$("td:not([style*='display:none'])", ".searchDiv")

  绝招:分别在不同浏览器控制台打印出style属性,终于找到原因。我只测试了谷歌和IE,其他浏览器可自己试验。

  jQuery attr style 选择器在不同浏览器中的表现

  注意他们的区别,一个是注意大小写,另外要注意冒号后的空格(style='DISPLAY: none')。

  其他浏览器随便写,IE中:

  不行:$("td:not([style*='DISPLAY: none'])", this.searchDiv)

  正解:$("td", ".searchDiv").not($("td[style='DISPLAY: none']", ".searchDiv"))

 

  IE 7 下仍然有问题,使用jquery的filter() 函数解决。

相关文章:

  • 2021-11-30
  • 2021-12-19
  • 2021-05-13
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-03
  • 2022-02-11
  • 2022-12-23
  • 2021-09-26
  • 2021-11-23
  • 2022-12-23
相关资源
相似解决方案