2012-06-07 159 views
4

不工作我使用這個代碼jQuery的:第n個孩子在IE

$('.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不工作...

+0

反正IEAI不支持AFAIK nth-child。 –

+0

@pixelngrain請將您的HTML文件發佈到'.list-item'元素。同時發佈您可能在控制檯中看到的任何消息。 – Sampson

+0

我檢查並沒有在IE中工作。不知道錯在哪裏 –

回答

2

nth-child不支持IE 6-8。 IE9支持它。見here

有關可能的解決方法,請參閱this question

+0

jQuery在缺乏本地瀏覽器支持的情況下處理'n-child'。 – Sampson

1

聽起來好像還有其他不妥之處。即使在IE6中你的代碼也應該可以工作 - 儘管IE < 9本身不支持nth子,但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中,你也應該...

+0

如何更改此代碼的div? –

0

實際上,有,你可以在你的js文件的文件夾,並添加在你的頭和第n個孩子的一些條件語句會在IE 6,7工作,8,你可以瞭解一個腳本的詳細here和如果您需要使用圓角,則需要安裝另一個名爲curvycorners.js的腳本。它們確實節省時間。祝你好運

0

jQuery的nth子選擇器不能在一些涉及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索引的。 eq()是基於0-索引的。