jQuery和last-child不在IE8中工作

时间:2012-04-08 10:21:47

标签: jquery

我正在把这头发撕掉 - 这让我很生气,因为它应该很简单。

在我的网站中,我使用:last-child从Twitter Feed的最后一个元素中删除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

感谢您的帮助

3 个答案:

答案 0 :(得分:2)

您的代码很好,问题发生的原因是您在页面底部包含了jQuery库,但是您在顶部运行了IE8脚本。

jQuery尚未加载,因此您的脚本失败(并引发错误, '$' is undefined

在包含jQuery之后移动代码,你应该设置它。

答案 1 :(得分:1)

尝试使用:last代替:last-child

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

作为参考,:last-child查找集合中的最后一个子元素 - 因此在您的情况下,将查找liul#twitter元素内的最后一个子元素。

:last只查找集合中的最后一个元素,因此您可以匹配li中的最后一个ul#twitter

答案 2 :(得分:0)

也许最好使用

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

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

作为你的选择者