【问题标题】:jQuery 101 - Change CSS not working with advanced selectorsjQuery 101 - 更改 CSS 不适用于高级选择器
【发布时间】:2010-12-01 04:44:05
【问题描述】:

这是跨 IE 和 Firefox。

我在 li 标签中有一个 5 项的无序列表。

<script type="text/javascript">
$(function() //when doc is ready
    {
                $("li:first").css('color', 'red');

    }); 

</script>

这绝对没有任何作用,但是如果我省略 :first 部分,它会使所有 li 变红,不知道为什么,因为我正在学习教程。

这里是html:

<div id="container">
<script type="text/javascript"><!--
$(function() //when doc is ready
{
    $("li:first").css('color', 'red');
});//--></script>

<div id="leftcontent">
<center><img src="http://www.dmu.com/5f/images/thiszis.png"></center>
<div id="hoastdears">
<ul>

<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
<li>item5</li>
</ul>

在标题中。

【问题讨论】:

  • 你的确切代码在这个 jsfiddle 中为我工作:jsfiddle.net/sSbJM/1 你能发布一些 HTML 吗?也许问题就在那里。
  • 您需要粘贴更多代码。你在这里的东西很好用。
  • 尝试使用 $('li').eq(1).css('color', 'red'); ?这应该会影响第二项。以防万一其他事情弄乱了您的第一个列表项
  • 放弃脚本中的 HTML cmets,除非您担心 Netscape 1 用户。
  • 使用您提供的 HTML,它仍然有效。 jsfiddle.net/sSbJM/4

标签: jquery css css-selectors


【解决方案1】:

为您的li:first 选择器指定一个上下文。比如:

$("li:first", "ul:first").css("color", "red");

【讨论】:

    【解决方案2】:

    试试这个

    $(document).ready(function(){
            $("li:first").css('color', 'red');
    });
    

    这里是 jQuery API http://api.jquery.com/ready/的链接

    【讨论】:

    • 你的代码和他的代码在功能上没有区别,它们只是同义词。
    • 这应该是一样的——OP使用的版本是简写。公平地说,我不知道何时添加了此速记功能,因此值得测试。
    • 我实际上遇到了速记不起作用的情况。不过,我从来没有找到问题的根源。
    • 更好的简写是jQuery(function($){..code here..});
    【解决方案3】:

    它按原样对我有用,问题一定出在其他地方:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head><title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script type="text/javascript"><!--
    $(function() //when doc is ready
    {
        $("li:first").css('color', 'red');
    });//--></script>
    </head>
    <body>
    
    <ul>
        <li>First</li>
        <li>Second</li>
        <li>Third</li>
    </ul>
    
    </body>
    </html>
    

    更新:找到浏览器的 JavaScript 控制台(在 Firefox 中,可以在 工具 菜单下找到)。您可能在某处遇到了阻止 JavaScript 代码执行的语法错误。

    【讨论】:

    • 要清楚,复制两个脚本并调整我的 jquery.js 以匹配你的 Alvaro,即使在清除缓存等之后,似乎也没有工作。
    猜你喜欢
    • 2015-03-07
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多