Javascript IE8的第n种替代类型

Javascript IE8的第n种替代类型,javascript,jquery,css,internet-explorer-8,jquery-selectors,Javascript,Jquery,Css,Internet Explorer 8,Jquery Selectors,我有一排的产品部门。需要在每四个项目后添加一个清晰的div。四比一排 我使用的是jQuery('.product:nth,类型为(4n+2)')现在,但它不支持IE8。由于我们使用的是jQuery,selectivizrs修复程序在这种情况下无法工作 我也试过了 addDynamicRow = function() { var divs = $(".product-section > .product"); for(v

我有一排的产品部门。需要在每四个项目后添加一个清晰的div。四比一排

我使用的是
jQuery('.product:nth,类型为(4n+2)')现在,但它不支持IE8。由于我们使用的是jQuery,selectivizrs修复程序在这种情况下无法工作

我也试过了

            addDynamicRow = function() {
            var divs = $(".product-section > .product");
            for(var i = 0; i < divs.length; i+=4) {
              divs.slice(i, i+4).wrapAll("<div class='row'></div>");
            }  

            $('.row').after("<div class='clear'></div>")   
        }

        addDynamicRow();
addDynamicRow=function(){
var divs=$(“.product节>.product”);
对于(变量i=0;i
但这也抓住了其他产品部分包装中的所有产品分区,并将它们分为四组,而不管它们在哪里

有人知道一轮工作吗?我还没有找到解决办法

谢谢

1/15/13更新:jQuery 1.9现在在所有浏览器中都支持以下CSS3选择器,可以追溯到IE6::n最后一个子项,:n类型的第n个,:n类型的最后一个,:类型的第一个,:类型的最后一个,:仅类型的,:target,:root和:lang。

可能会滥用这些选择器来解决jQuery缺少的CSS3支持:

jQuery('.product').filter(function(i){return i%4==2;})

虽然它模拟的是第n个子元素,而不是第n个类型的子元素,并且只在当前选定的元素集中,而不是基于它们的DOM位置。

如果您愿意使用javascript解决方案,那么我所知道的最好的解决方案是。它为IE增加了对一系列高级CSS选择器的支持

它使用多个库(包括jQuery)中的任意一个来实现这一点。然而,值得注意的是,从他们的主页上可以看到,当与jQuery结合使用时,
nth类型的
被认为是不受支持的。不过,它可以与MooTools、Prototype和其他库一起使用。我不知道为什么jQuery会有问题

如果这对您不起作用,那么一个名为的旧脚本可能会对您有所帮助。这是一个大的黑客,试图在IE的旧版本中添加一大堆缺失的功能,包括
nth类型
和其他CSS选择器。它还试图修复一大堆IE bug

这两个库中的任何一个都可能适合您,并且允许您使用高级CSS选择器,而无需担心旧版本的IE。试一试。

最终在IE条件语句中使用。它正在工作。


它将解决您的问题,它帮助所有css3选择器类。

如果您不想加载完整的选择器库,请查看:

我看了一下,它略高于我的认知水平。我不理解这个解决方案。看到了吗?这是jQuery核心的扩展吗?O_o@ChristopherMarshall它是jQuery选择器引擎的扩展。注:副本上的已接受答案包含指向的链接。即使是傻瓜也应该能够阅读简明的文档,并理解简单的示例。该插件工作正常。把它放在一个条件中,我就在github上跟踪它。谢谢Rob。我不能将selectivzr用于上述目的。但是我尝试为ie9.js实现条件。条件在我的domReady.js文件之前,但我仍然得到错误。SCRIPT5022:语法错误,无法识别的表达式:jquery-1.7.2.min.js类型的第n个,第3行字符15260IE9.js不会影响jquery支持
n类型的能力。它只对你的实际样式表中的选择器有效。是的,这就是我使用的。所以其他人回答了你的问题,但是你发布了一个副本,然后接受了你自己的答案?那个家伙在我发布这个答案5个月后发布了那个答案。检查日期…确实。。。我道歉。