用jquery选择第一个孩子

时间:2011-02-03 20:50:38

标签: jquery

我正在尝试选择ul的第一个孩子,然后将其删除,然后将其附加到ul的末尾,但不幸的是我不能选择第一个孩子。

这是代码

current = 0;
$(document).ready(function(){

    width=951;

    var totalSlides=$(".slider ul li").length;
    $(".slider ul").removeAttr('width');
    $(".slider ul").attr('width',width*totalSlides);

    $('#next img').click(function(){
        current -= width;
        $(".slider ul").animate({"left":current+"px"}, "slow");
        $(".slider ul").append($(".slider ul:first-child"));
        //$('.slider ul:firstChild').remove();
    });
});

5 个答案:

答案 0 :(得分:17)

您不需要.remove()help.detach()help节点将其附加到其他位置。您只需分别.append()help.appendTo()help .after()help.insertAfterhelp来调用即可。例如:

$('ul li:first').insertAfter('ul li:last');

演示http://www.jsfiddle.net/KFk4P/

答案 1 :(得分:15)

可以选择ul的第一个孩子:

$('ul > :first-child');

或:

$('ul').children().eq(0);

或:

$('ul li:first');

可能还有很多其他方法。

答案 2 :(得分:9)

其中任何一个都可行:

  • $('ul > li:first')
  • $('ul > li:first-child')
  • $('ul > li:eq(0)')
  • $('ul > li:nth-child(1)')
  • $('ul > li').eq(0)
  • $('ul > li').first()
  • $('ul > li')[0]

答案 3 :(得分:0)

ul:first-child未选择ul的第一个孩子,它会选择第一个孩子本身的ul。使用li:first-child

答案 4 :(得分:0)

首先,为每个第一个跨度创建一个类,如下所示:

<li><span class = "the_span">a1</span><span>b1</<span></li>
<li><span class = "the_span">a2</span><span>b2</<span></li>
<li><span class = "the_span">a3</span><span>b3</span></li>`

在Javascript中,你写道:

var spanEl = document.getElementsByClassName("the_span");

你去吧!