JQuery CSS选择第一个&最后LI表格UL列表

时间:2010-02-15 15:18:40

标签: jquery css-selectors

请使用JQuery CSS选择器寻求帮助。我想从主UL列表中识别第一个和最后一个LI并更改CSS类。第一个应该是 class="grid_4 alpha" 和最后一个 class="grid_4 omega"

<ul>
    <li id="linkcat-2" class="grid_4 this should be alpha"><h4 class="widgettitle">Blogroll</h4>
     <ul class='xoxo blogroll'>
      <li><a href="http://wordpress.com/">WordPress.com</a></li>
      <li><a href="http://wordpress.org/">WordPress.org</a></li>
     </ul>
</li>
<li id="linkcat-2" class="grid_4"><h4 class="widgettitle">Blogroll</h4>
 <ul class='xoxo blogroll'>
  <li><a href="http://wordpress.com/">WordPress.com</a></li>
  <li><a href="http://wordpress.org/">WordPress.org</a></li>
 </ul>
</li>
<li id="linkcat-2" class="grid_4"><h4 class="widgettitle">Blogroll</h4>
 <ul class='xoxo blogroll'>
  <li><a href="http://wordpress.com/">WordPress.com</a></li>
  <li><a href="http://wordpress.org/">WordPress.org</a></li>
 </ul>
</li>
<li id="linkcat-2" class="grid_4 this should be omega"><h4 class="widgettitle">Blogroll</h4>
 <ul class='xoxo blogroll'>
  <li><a href="http://wordpress.com/">WordPress.com</a></li>
  <li><a href="http://wordpress.org/">WordPress.org</a></li>
 </ul>
</li>
</ul>

我无法使用正确的JQuery.css函数。

非常感谢 - 如果需要,我可以向主人ul添加一个id

5 个答案:

答案 0 :(得分:10)

对子(:first-child)选择器使用:last-child>

$("#master > :first-child").addClass("grid_4 alpha");
$("#master > :last-child").addClass("grid_4 omega");

请记住,类中不能包含空格。这个标记:

<li class="grid_4 alpha">...

定义一个包含两个类的列表元素。如果您想选择它,您可以使用:

$("li.grid_4.alpha")...

意思是选择同时具有grid_4 alpha类的所有列表元素。

答案 1 :(得分:2)

您应该使用以下选择器:

http://api.jquery.com/first-selector/

http://api.jquery.com/last-selector/

e.g:

$("ul li:first").addClass("alpha");
$("ul li:last").addClass("omega");

答案 2 :(得分:1)

$('ul > li:first').addClass('alpha');
$('ul > li:last').addClass('omega');

嘿记得<猿>在人猿星球下的结束?这很酷,有大炸弹和一切。哎呀我希望我没有为任何人放弃它!

答案 3 :(得分:0)

这个怎么样:

$('ul li:first').addClass('alpha');
$('ul li:last').addClass('omage');

希望这会有所帮助:)

答案 4 :(得分:0)

在您的示例中可能导致问题的一件事是您为多个项目分配了相同的ID:

id="linkcat-2"

id应该是唯一的。

但是,这是您选择第一个和最后一个的方式:

<ul id="main">
    <li>One</li>
    <li>Two
        <ul>
            <li>Two A</li>
            <li>Two B</li>
        </ul>
    </li>
    <li>Three</li>
    <li>Four
        <ul>
            <li>Two A</li>
            <li>Two B</li>
        </ul>
    </li>
</ul>

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
    alert($("#main > :first-child").text());
    alert($("#main > :last-child").text());
</script>