2010-04-07 3 views
13

Das Szenario ist, ich habe zwei div s: eine ist, wo ich Elemente (divResults) auswählen und es geht zum nächsten div (divSelectedContacts). Wenn ich es auswähle, setze ich ein Häkchen daneben. Was ich tun möchte, ist, wenn ich es wieder wähle, möchte ich das Häkchen entfernen und auch das Element von divSelectedContacts entfernen. Hier

ist der Code:

$("#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 
    } 
}); 

Ich weiß nicht, wie die erste span in einem li mit $(this) auszuwählen. Jede Hilfe wird sehr geschätzt.

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

Antwort

26

Mehrere Möglichkeiten:

+0

Vielen Dank :-). Das deleteElement ist mir nicht eingefallen. Guter Fang. – Raja

5

Zu diesem das erste Kind von $(this) Nutzung erhalten

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

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

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

Beachten Sie, dass Sie nicht brauchen, $(deleteElement) als deleteElement zu verwenden, ist bereits ein Objekt jQuery . So können Sie es wie folgt tun:

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

oder man konnte einfach alles in den Wähler werfen ...

$('span:first', this); 
+0

Ich mag es, guten! – Gabe

+0

süß Ich mag diese Implementierung. +1 für dich. – Raja