Jak zaappendować drugi span na koniec i usunąć pierwszy?

0

Męczę się już chyba od 2 godzin. Mam diva, w nim tekst + 0 albo 1 span z tekstem i nic więcej. Jeżeli chcę dodać spana do sprawdzam czy już jakieś są, jeżeli tak to usuwam i próbuję dodać nowego.

<div class="moj-div">
    qwerty<span>zxc</span>
</div>
if($(".moj-div:contains('"+mojString+"') > span" ).length>0) {
	$(".moj-div:contains('"+mojString+"') > span").remove();
	}
	
$(".moj-div:contains('"+mojString+"')").append(' <span>('+innyString+')</span>');

Niestety to nie działa. Raz span się doda, przy drugiej próbie dodania się tylko usuwa i nowy już się nie dodaje.

0

Znowu rozwiązałem problem po napisaniu na forum. Zamieniłem miejscami te instrukcje i już działa (tylko lenght>1).

0

Chociaż teraz nie zawsze span się stawia, jeszcze nie doszedłem do tego kiedy tak, kiedy nie, jakby losowo.

0

A nie możesz, tak po ludzku ukrywać css'owo tego spana, a jak jest Ci potrzebny to go odkrywać?

0

Z pierwszego posta ustaliłem, że masz div'a moj-div który może zawierać tag <span>, a ty chcesz:
a) jeżeli już zawiera tag <span> chcesz go usunąć i dodać nowy,
b) jeżeli nie zawiera tagu <span> chcesz go dodać.

var innyString = 'dupa';

if($(".moj-div").is(':has(span)')){       // jeżeli w .moj-div znajduje się span
    $(".moj-div span").remove();          // usuń go
    $(".moj-div").append('<span>'+innyString+'</span>');      // i dodaj nowy
} else {                                 // jeżeli w .moj-div nie ma żadnego span'a
    $(".moj-div").append('<span>'+innyString+'</span>');     // dodaj go
}

następnym razem staraj się opisać problem, tak aby nie trzeba było się zastanawiać o co chodzi :P

0

Dzięki, działa - tylko zostawiłem samego ifa bez elsa, a powtarzającą instrukcję dałem po nim. Chociaż nie wiem dlaczego moja wcześniejsza wersja nie działała.

1 użytkowników online, w tym zalogowanych: 0, gości: 1