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

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

Ответы

Ответ 1

Несколько способов:

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

$('span:first', this);