2009-03-02 7 views
6

Mam element div, który zwija kliknięcie nagłówka tekstu. Chcę zmienić nagłówek z „+” do „filtrów - Filtry” odpowiednio (gdy div jest zwinięty lub rozwinięty)Obsługa ciągów w jQuery

Jak mogę wykonać to z jQuery:

if (headerDiv.text() starts with "+") 
    replace "+" with "-" 
else 
    replace "-" with "+" 

?

Odpowiedz

13

Nieważne, I zdobione

if ($(header).text().trim().charAt(0) == "+") 
    $(header).text($(header).text().replace("+", "-")); 
else 
    $(header).text($(header).text().replace("-", "+")); 

Jeśli nie jest to właściwy sposób, byłbym wdzięczny a heads up

4

zrobiłbym:

var plus_string = "<span class=/"plus/">+</span>"; 
var minus_string = "<span class=/"minus/">-</span>"; 


if($("div.header").hasClass("plus")){ 
    $("div.header").removeClass("plus"); 
    $("div.header").addClass("minus"); 
    $("div.header").append(plus_string); 
    $("span.plus").remove(); 
} else (... the reverse of the above...) 

to dlatego, że użyłby klasy plus i minus do obsługi trochę CSS, aby zmienić wygląd div nagłówka. Jak pewnie już robi, że można grać z nim trochę tak :)

1

proste, dlaczego musisz je przeanalizować? po prostu zamieniasz jeden ciąg na inny.

if(headerDiv.text() == '+ filters') 
{ 
    headerDiv.text() == '- filters'; 
} 
elseif(headerDiv.text() == '- filters') 
{ 
    headerDiv.text() == '+ filters'; 
}