/ / Zmiana klasy <i> wewnątrz <span> - jquery

Zmiana klasy <i> wewnątrz <span> - jquery

Próbuję zmienić klasę <i class="icon-ok"> wewnątrz a <span></span>

Cała sprawa wygląda tak:

<span class="enable"> Some Text
<i class="icon-ok">  //This is all there is in here. Just one <i> and nothing else
</span>

JQuery:

$(".enable").live("click", function() {
var self = $(this);
self./ how do I tell it to look for the i/.removeClass("icon-ok").addClass("icon-remove");
});

Czy znasz sposób, w jaki można to zrobić?

Odpowiedzi:

0 dla odpowiedzi № 1

Posługiwać się .odnaleźć()

self.find("i").removeClass("icon-ok").addClass("icon-remove");

0 dla odpowiedzi nr 2

Możesz użyć odnaleźć() lub dzieci() od <i> to dzieci twojego .enable:

$(".enable").on("click", function() {
var self = $(this);
self.find("i").removeClass("icon-ok").addClass("icon-remove");
});

Btw, live jest przestarzały jak w wersji jQuery 1.7. Powinieneś użyć na() zamiast.


0 dla odpowiedzi № 3
$(this).find(".icon-ok").removeClass("icon-ok").addClass("icon-remove");

$(this).find("i").removeClass("icon-ok").addClass("icon-remove");

$(this).children("i").removeClass("icon-ok").addClass("icon-remove");

$(this).children(".icon-ok").removeClass("icon-ok").addClass("icon-remove");

to słowo kluczowe

.odnaleźć()

.dzieci()


0 dla odpowiedzi nr 4

Posługiwać się find() przeszukiwać kliknięty element ...

$(".enable").live("click", function() {
var self = $(this);
self.find("i").removeClass("icon-ok").addClass("icon-remove");
});

Ponadto, w zależności od używanej wersji jQuery, możesz chcieć on() zamiast live(), ponieważ „zostało to uznane za przestarzałe i wierzę, że usunięto je w najnowszych wersjach.” live po pierwsze - zajrzyj tutaj, aby uzyskać więcej informacji ... http://api.jquery.com/on/)