如何删除元素的第一个子元素,但在Jquery中由$(this)引用?

时间:2010-04-07 13:44:10

标签: jquery jquery-selectors

场景是我有两个div:一个是我选择项目(divResults)的地方,然后它转到下一个div(divSelectedContacts)。当我选择它时,我在它旁边放一个刻度线。我想要做的是当我再次选择它时我想删除勾号并从divSelectedContacts中删除该元素。

以下是代码:

$("#divResults li").click(function()
{
    if ($(this).find('span').size() == 1)
    {
        var copyElement = $(this).children().clone();
        $(this).children().prepend("<span class='ui-icon ui-icon-check checked' style='float:left'></span>");
        $("#divSelectedContacts").append(copyElement);
    } else
    {
        var deleteElement = $(this).find('span'); //here is the problem how to find the first span and delete it
        $(deleteElement).remove();
        var copyElement = $(this).children().clone();//get the child element
        $("#divSelectedContacts").find(copyElement).remove(); //remove that element by finding it
    }
});

我不知道如何使用span选择li中的第一个$(this)。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:27)

有几种方法:

$(this).find('span:first');

$(this).find(':first-child');

$(this).find('span').eq(0);

请注意,您不需要使用$(deleteElement),因为deleteElement已经是jQuery对象。所以你可以这样做:

$(this).find('span:first').remove();

答案 1 :(得分:5)

要获取$(this)第一个孩子,请使用此选项:

$(this).find(":first-child");

答案 2 :(得分:5)

或者你可以将它全部扔进选择器......

$('span:first', this);