4

我正在使用此代码

$('.list-item:nth-child(5n)').after('<div class="clear"><img src="http://domain.com/image.jpg" width="780" height="80" alt="banner" /></div>')

这在 Firefox 和 Chrome 中运行良好,但在 IE8、IE9 中无法运行......

4

5 回答 5

4

jQuerynth-child在没有本地浏览器支持的情况下处理。它在 IE7、8 和 9+ 中运行良好。

小提琴:http: //jsfiddle.net/jonathansampson/Y3MP4/

于 2012-06-07T19:02:44.380 回答
2

nth-childIE 6-8 不支持。IE9 支持它。见这里

有关可能的解决方法,请参阅此问题

于 2012-06-07T18:19:01.013 回答
1

好像还有什么不对劲。您的代码即使在 IE6 中也应该可以工作——尽管 IE<9 本身并不支持 nth-child,但 jQuery 的选择器引擎 (Sizzle) 会为您隐式处理它。

试试这个代码:

<script>
$("ul").remove();
var ul = $("<ul>");
for (var i = 1; i < 100; i++) {
  $("<li>", {
    "class" : "list-item",
    html : i
  }).appendTo(ul);
}
ul.appendTo(document.body);

$('.list-item:nth-child(5n)')
  .after('<div class="clear">Clear!</div>')
</script>

你看到“清除!” 评论?即使在 IE6 中,您也应该...

于 2012-06-07T18:51:46.443 回答
0

实际上,您可以在 js 文件夹中上传一个脚本,并在标题中添加一些条件,nth-child 将在 IE 6、7 和 8 中工作。您可以在此处了解更多信息,如果您需要使用圆角,则需要安装另一个名为 curvycorners.js 的脚本,它们真的很节省时间。祝你好运

于 2012-12-19T21:26:42.270 回答
0

jQuery nth-child 选择器在 IE8 中涉及复杂选择器的某些极端情况下不起作用。

以下需要在 IE8 中修改。

//Works fine in IE9+, FF and Chrome. 
//dataColumn = jQuery('.table-header div.rf-edt-hdr + div table table tbody > tr:nth-child(1) td:nth-child(1)');
//headerColumn = jQuery('div.table-header > div.rf-edt-hdr table table > tbody > tr td:nth-child(1)');
dataColumn = jQuery('.table-header div.rf-edt-hdr + div table table tbody > tr').eq(0).find('td').eq(0);
headerColumn = jQuery('div.table-header > div.rf-edt-hdr table table > tbody > tr td').eq(0);

注意:nth-​​child 是基于 1-index 的。eq() 是基于 0 索引的。

于 2014-06-26T09:41:56.823 回答