Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery查找的IE7问题?_Javascript_Jquery_Internet Explorer 7 - Fatal编程技术网

Javascript jQuery查找的IE7问题?

Javascript jQuery查找的IE7问题?,javascript,jquery,internet-explorer-7,Javascript,Jquery,Internet Explorer 7,在我开始使用IE9.js文件之前,以下代码在IE7中运行良好。js文件在我添加的已经存在的类中添加了一个额外的类“ie7_class82”。下面的代码在IE7中停止工作。当存在多个类时,是否存在无法使用jQuery找到匹配类的已知问题 --------------HTML代码框架------------- 注:不幸的是,IE7中没有错误(在FF和Chrome中也可以正常工作)。它应该隐藏所有的表,只显示与标签标签中的类名相匹配的表。IE7隐藏所有表,但无法显示与类匹配的表 更新的代码(在IE7中

在我开始使用IE9.js文件之前,以下代码在IE7中运行良好。js文件在我添加的已经存在的类中添加了一个额外的类“ie7_class82”。下面的代码在IE7中停止工作。当存在多个类时,是否存在无法使用jQuery找到匹配类的已知问题

--------------HTML代码框架-------------

注:不幸的是,IE7中没有错误(在FF和Chrome中也可以正常工作)。它应该隐藏所有的表,只显示与标签标签中的类名相匹配的表。IE7隐藏所有表,但无法显示与类匹配的表

更新的代码(在IE7中工作,感谢SO):


与前面提到的一条注释一样,
'tbody tr.+this.className
将在
this
具有多个类时生成无效选择器

为什么要获取一个类与单击的标签相等的行,这有点令人困惑。也许可以看看jQuery的DOM导航方法。特别是家长和家长:

如果您确实必须执行您试图执行的操作,那么解决方法就是在
this.className
中用句点替换空格。因此,您可以修改代码以执行此操作:

'tbody tr.' + this.className.replace(/ /g,'.')

this.className
返回实际的
class
属性,在ie7中,由于ie9.js文件,该属性包含多个类。
这意味着类似于您使用的选择器:

'table.' + this.className
将被翻译成:

'table.yourClassName ie7_class82'
它不是有效的jquery(或css)选择器

我建议您将
这个.className
替换为如下内容:

var classSelector = $.trim($(this).attr('class')).split(/\s+/g).join('.');
这意味着:

'table.' + classSelector 
将被翻译成:

'table.yourClassName.ie7_class82.some-other-classes-if-any'

IE9.js
?IE9是一个浏览器而不是javascript。这是一个插件还是什么,或者你有没有搞混了?@gdoron我想这是他的js文件,已经修复了IE@gdorongoogle ie9.js它类似于ie7.js,或者@web_dev您可以在jsfiddle.net上发布一个简化的示例吗?
this.className
嵌入到字符串中?不应该是
:不是(“+this.className+”)”
?我认为这可能是导致问题的原因,我会在它工作后进行更新。使用var classSelector它工作得非常好,感谢SO社区的支持!!
var classSelector = $.trim($(this).attr('class')).split(/\s+/g).join('.');
'table.' + classSelector 
'table.yourClassName.ie7_class82.some-other-classes-if-any'