/ / Zmena triedy <i> vo vnútri <span> - jquery

Zmena triedy <i> vo vnútri <span> - jquery

Snažím sa zmeniť triedu <i class="icon-ok"> vnútri a <span></span>

Celá vec je takto:

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

Viete, ako sa to dá urobiť?

odpovede:

0 pre odpoveď č. 1

použitie .Nájsť()

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

0 pre odpoveď č. 2

Môžeš použiť Nájsť() alebo deti () od tej doby <i> sú vaše deti .enable:

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

btw, live je zastaraná od verzie jQuery 1.7, Mali by ste používať na () miesto.


0 pre odpoveď č. 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");

toto kľúčové slovo

.Nájsť()

.children ()


0 pre odpoveď č. 4

použitie find() hľadanie vo vnútri kliknutého prvku ...

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

Tiež v závislosti od toho, akú verziu jQuery, ktorú používate, vás môže chcieť on() namiesto live(), pretože toto bolo "" zastarané a ja som presvedčený, že bol odstránený v najnovších verziách (predpokladám, že by mohlo dôjsť k delegovaniu, a preto používanie live v prvom rade sa pozrite na ďalšie informácie ... http://api.jquery.com/on/)