【问题标题】:Nth-of-type alternative for IE8 [duplicate]IE8的第N个类型替代[重复]
【发布时间】:2012-07-17 21:21:50
【问题描述】:

我有一排产品 div。需要在每第四个项目之后添加一个清晰的 div。 4到一排。

我现在正在使用jQuery('.product:nth-of-type(4n+2)').after("<div class='clear'></div>");,但它不支持 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();

但这也会抓取其他产品部分包装器中的所有产品 div,并将它们分成四个一组,无论它们在哪里。

有人知道轮播吗?我还没找到解决办法。

谢谢!

1/15/13 更新: jQuery 1.9 现在在所有浏览器中支持以下 CSS3 选择器,一直到 IE6::nth-last-child, :nth-of-type, :nth-last-of-type、:first-of-type、:last-of-type、:only-of-type、:target、:root 和 :lang。

【问题讨论】:

  • 我看了看,有点超出我的认知水平。我不明白解决方案。
  • 这是 jQuery 核心的扩展吗? O_o
  • @ChristopherMarshall 这是对 jQuery 选择器引擎的扩展。注意:副本上接受的答案包括指向github.com/keithclark/JQuery-Extended-Selectors 的链接。即使是傻瓜也应该能够阅读简洁的文档,并理解简单的示例。
  • 那个插件有效。有条件的,我在 github 上关注。谢谢罗伯。

标签: javascript jquery css internet-explorer-8 jquery-selectors


【解决方案1】:

最终在 IE 条件语句中使用 https://github.com/keithclark/JQuery-Extended-Selectors。它现在正在工作。

【讨论】:

  • 所以其他人回答了您的问题,但您发布了一个副本然后接受了您自己的答案?
  • 这个人在我发布这个答案 5 个月后发布了这个答案。检查日期...
  • 确实……我很抱歉。
【解决方案2】:

JQuery-Extended-Selectors

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

【讨论】:

  • 是的,这就是我用的。
【解决方案3】:

.filter method 可能被滥用来解决缺少的 jQuery 的 CSS3 支持:

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

虽然它模拟了nth-child,而不是nth-of-type,并且只在当前选定的元素集中,而不是基于它们的DOM位置。

【讨论】:

    【解决方案4】:

    如果您乐于使用 javascript 解决方案,那么我所知道的最好的解决方案是 Selectivz。它为大量高级 CSS 选择器添加了对 IE 的支持。

    它使用包括 jQuery 在内的多个库中的任何一个来执行此操作。然而值得注意的是,他们的主页提到nth-of-type 在与 jQuery 结合使用时不受支持。不过,它确实适用于 MooTools、Prototype 和其他库。我不知道为什么它专门与 jQuery 有问题。

    如果这对您不起作用,一个名为 IE9.js 的旧脚本可能会对您有所帮助。这是一个很大的 hack,它试图将一大堆缺失的功能添加到旧版本的 IE 中,包括 nth-of-type 和其他 CSS 选择器。它还试图修复一大堆 IE 错误。

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

    【讨论】:

    • 我不能将 selectivzr 用于上述目的。但我尝试为 ie9.js 实现条件。条件在我的 domReady.js 文件之前,但我仍然收到错误。 SCRIPT5022:语法错误,无法识别的表达式:nth-​​of-type jquery-1.7.2.min.js,第 3 行字符 15260
    • IE9.js 不会影响 jQuery 支持nth-of-type 的能力。它只适用于您实际样式表中的选择器。
    【解决方案5】:

    如果您不想加载完整的选择器库,请查看:https://gist.github.com/oliverbenns/6740630

    【讨论】:

      猜你喜欢
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 2013-09-21
      • 2016-10-23
      • 2019-11-29
      相关资源
      最近更新 更多