Как удалить первый дочерний элемент элемента, на который ссылается $(this) в Jquery?

Сценарий: у меня есть два 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). Любая помощь горячо приветствуется.


person Raja    schedule 07.04.2010    source источник


Ответы (3)


Несколько путей:

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

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

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

Обратите внимание, что вам не нужно использовать $(deleteElement), так как deleteElement уже является объектом jQuery. Итак, вы можете сделать это следующим образом:

$(this).find('span:first').remove();
person Tatu Ulmanen    schedule 07.04.2010
comment
Большое спасибо :-). Мне не приходило в голову удаление элемента. Хороший улов. - person Raja; 07.04.2010

Чтобы получить первого потомка $(this), используйте это:

$(this).find(":first-child");
person Gabe    schedule 07.04.2010

или вы могли бы просто бросить все это в селектор ...

$('span:first', this);
person ryan j    schedule 07.04.2010
comment
сладкий Мне нравится эта реализация. +1 для вас. - person Raja; 07.04.2010