1

我正在为此撕毁我的头发 - 它让我发疯,因为它应该如此简单。

在我的网站中,我使用从 twitter 提要的最后一个元素中:last-child删除:border-bottom

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

这在 Firefox / Chrome 中运行良好,但不适用于不支持 last-child 的 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 是正确的并且一切正常?有任何想法吗?

网站在这里

感谢您的帮助

4

3 回答 3

2

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

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

在 jQuery 包含之后移动代码,您应该已设置好。

于 2012-04-08T10:32:08.733 回答
1

尝试使用:last而不是:last-child

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

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

:lastli只查找集合中的最后一个元素,因此您将匹配ul#twitter.

于 2012-04-08T10:25:58.203 回答
0

也许最好使用

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

或者

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

作为您的选择器

于 2012-04-08T10:29:21.983 回答