2012-04-08 63 views
1

我正在爲這件事撕碎我的頭髮 - 它讓我發瘋,因爲它應該如此簡單。jQuery和最後一個孩子在IE8中工作不正常

在我的地盤我使用:last-child從Twitter的飼料的最後一個元素刪除border-bottom

ul#twitter li:last-child { 
    border: none; 
} 

這在Firefox/Chrome瀏覽器工作正常,但不是IE8不支持最後的孩子。所以,我轉向jQuery和把這個在我的<head>

<!--[if IE 8]> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $('ul#twitter li:last-child').css('border','none !important'); 
     }); 
    </script> 
<![endif]--> 

這有沒有影響?我曾嘗試使用外部文件,使其不具有IE8特定,有和沒有文檔準備好...我也嘗試過在Firebug中選擇器,以確保我的jQuery是正確的,它的一切工作?有任何想法嗎?

The site is here

謝謝您的幫助

回答

2

您的代碼就好了,這個問題是因爲你有在底部的jQuery庫的頁面,但你的頂部運行你的IE8腳本。

jQuery是尚未加載,所以你的腳本失敗(並拋出一個錯誤,以及,'$' is undefined

jQuery的夾雜物後移的代碼,你應該設置。

+1

我以爲 - 但不是'$(document).ready(function(){'? – rwb 2012-04-08 10:33:31

+2

@ryan,但'$'還沒有存在..關鍵是允許DOM被加載,但是你有**在使用它之前加載jQuery .. – 2012-04-08 10:34:32

+0

'if($ .browser.msie && parseInt($。browser.version,10)=== 8){'在我的functions.js中做了訣竅 - 謝謝 – rwb 2012-04-08 10:42:32

1

嘗試使用:last代替:last-child

$('ul#twitter li:last').css(...) 

僅供參考,:last-child查找該組中的最後一個子元素 - 所以你的情況會在ul#twitter內查找li元素內的最後一個子元素。

:last只是查找集合中的最後一個元素,所以對於您將匹配ul#twitter內的最後一個li本身。

+0

剛剛上傳。沒有快樂:( – rwb 2012-04-08 10:28:00

0

也許是更好地使用

$('ul#twitter li').last(); 

$('ul#twitter li:last'); 

爲您選擇

+0

'$('ul#twitter li')。last().css('border','none');'也沒有工作(現在在網站上) – rwb 2012-04-08 10:31:06

相關問題