Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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 addClass在Internet Explorer中似乎不起作用_Javascript_Jquery_Css_Addclass_Css Selectors - Fatal编程技术网

Javascript jQuery addClass在Internet Explorer中似乎不起作用

Javascript jQuery addClass在Internet Explorer中似乎不起作用,javascript,jquery,css,addclass,css-selectors,Javascript,Jquery,Css,Addclass,Css Selectors,我整个下午都在想办法解决这个问题,但运气不好。在这个网站上,我正在处理()我们有两个区域(主页第一列和第二列以及事件页面),它们利用css伪选择器:nth-child()为不同的行着色 显然,nth-child()在InternetExplorer8及以下版本中不起作用(尚未查看IE9…),因此我想用jQuery复制此功能,方法如下(这是放在$(document)中的位置。ready(function(){..});): $(“.post:nth child(偶数)”).addClass(“la

我整个下午都在想办法解决这个问题,但运气不好。在这个网站上,我正在处理()我们有两个区域(主页第一列和第二列以及事件页面),它们利用css伪选择器
:nth-child()
为不同的行着色

显然,
nth-child()
在InternetExplorer8及以下版本中不起作用(尚未查看IE9…),因此我想用jQuery复制此功能,方法如下(这是放在
$(document)中的位置。ready(function(){
..
});
):

$(“.post:nth child(偶数)”).addClass(“latestpost偶数”); $(“.dbem\u events\u list li:nth child(2n-1)”).addClass(“事件奇数行”); $(“tr:nth child(2n+1)”).addClass(“日历奇数行”); $(“tr:nth child(1)”).addClass(“日历第一行”); 然后,我在CSS中定义了这些类,如下所示(这只是第一个示例):

.post:n个孩子(偶数),.latestpost个孩子(偶数){ 背景色:#F5E8; } 如果我用Firebug检查Firefox中的DOM,这些类已经被正确应用(尽管不必要,因为我在Firefox中)。在Internet Explorer 8或7中查看页面时,行没有颜色(因此可能没有应用类)

整个下午都在想办法解决这个问题,但运气不好。我在互联网上搜索了一下,什么都没找到。如果有人对此有任何见解,那就太棒了

谢谢

阿德里安你试过了吗

$(".post:even")

(后者需要扩展代码——请参见api注释…)

你试过了吗

$(".post:even")

(后者需要扩展代码——请参见api注释…)


我可以在IE中的开发者工具中看到,该类在IE7和IE8兼容模式下都得到了添加

也许IE忽略了它不理解的那行,所以你可以试试:

.post:nth-child(even) {
  background-color: #f5f4e8;
}
.latestpost-even {
  background-color: #f5f4e8;
}
或者,更好的是:

.latestpost-even, .post:nth-child(even) {
  background-color: #f5f4e8;
}

编辑:顺便说一句,我看到的是
.events奇数行
而不是
。latestpost偶数行
,但同样的原则也适用。

我可以在IE中的开发者工具中看到该类在IE7和IE8兼容模式下都被添加

也许IE忽略了它不理解的那行,所以你可以试试:

.post:nth-child(even) {
  background-color: #f5f4e8;
}
.latestpost-even {
  background-color: #f5f4e8;
}
或者,更好的是:

.latestpost-even, .post:nth-child(even) {
  background-color: #f5f4e8;
}
编辑:顺便说一句,我看到的是
.events奇数行
而不是
.latestpost偶数行
,但同样的原则也适用。

而不是:

.post:nth-child(even), .latestpost-even {
   background-color: #f5f4e8;
}
试一试

IE也有一些它不理解的伪代码的缺点,因为如果它有一个它不理解的选择器,它将忽略整个规则集,而不是:

.post:nth-child(even), .latestpost-even {
   background-color: #f5f4e8;
}
试一试


IE也有一个它不理解的伪代码的小缺点,即如果它有一个它不理解的选择器,它将忽略整个规则集。使用InternetExplorer7,我很难使用jQuery:odd&:偶数addClass将表分条。此外,还需要更改选定行的背景色

它会将该类添加到行中(使用动态DOM的检查器PageSpy进行检查),但不会看到效果

我需要将相同的类添加到行中的每个单元格中,以使其正常工作

发现了jQuery的andSelf

CSS

.odd{background-color:#fafafa;}

.even{background-color:#f4f4f4;}

.selected_row{background-color:#ff9999;}
Javascript

$('tbody#interest_list_body tr:odd').find('td').andSelf().addClass('odd');      
$('tbody#interest_list_body tr:even').find('td').andSelf().addClass('even');
对于选定的行,我使用了切换方法:

$('tbody#interest_list_body tr').toggle(  
   function(){  
    $('tbody#interest_list_body tr').find('td').andSelf().removeClass('selected_row');  
    if($(this).attr('id')){  
          $(this).find('td').andSelf().addClass('selected_row');  
    } // end if  
    }, // end fn  
   function(){  
          $(this).find('td').andSelf().removeClass('selected_row');  
    } // end fn  
);  

希望这对使用InternetExplorer7的人有所帮助,我在使用jQuery:odd&:偶数addClass对表进行条带化时遇到了麻烦。此外,还需要更改选定行的背景色

它会将该类添加到行中(使用动态DOM的检查器PageSpy进行检查),但不会看到效果

我需要将相同的类添加到行中的每个单元格中,以使其正常工作

发现了jQuery的andSelf

CSS

.odd{background-color:#fafafa;}

.even{background-color:#f4f4f4;}

.selected_row{background-color:#ff9999;}
Javascript

$('tbody#interest_list_body tr:odd').find('td').andSelf().addClass('odd');      
$('tbody#interest_list_body tr:even').find('td').andSelf().addClass('even');
对于选定的行,我使用了切换方法:

$('tbody#interest_list_body tr').toggle(  
   function(){  
    $('tbody#interest_list_body tr').find('td').andSelf().removeClass('selected_row');  
    if($(this).attr('id')){  
          $(this).find('td').andSelf().addClass('selected_row');  
    } // end if  
    }, // end fn  
   function(){  
          $(this).find('td').andSelf().removeClass('selected_row');  
    } // end fn  
);  

希望这能帮助那些有意义的人。我觉得自己是个白痴,没试过!谢谢你的帮助!这很有道理。我觉得自己是个白痴,没试过!谢谢你的帮助!谢谢他很有魅力。没有弄明白这一点,我确实觉得有点傻!不用客气,别担心这只是另一个IE的缺点,我们怎么能记住它们呢谢谢他很有魅力。没有弄明白这一点,我确实觉得有点傻!不用客气,别担心这只是另一个IE的缺点,我们怎么能记住它们呢