2009-03-02 22 views
6

Ich habe ein div, das auf einen Text-Header klickt. Ich möchte den Header ändern von „+ Filter“ auf „- Filter“ entsprechend (wenn das div kollabiert oder expandiert)String-Manipulation in jQuery

Wie kann ich dies ausführen mit jQuery:

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

?

Antwort

13

Es macht nichts :), ich es

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

Ist dies nicht der richtige Weg herausgefunden, würde ich schätzen a heads up

4

ich tun würde:

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...) 

, weil ich die Klasse plus und minus verwenden würde ein bisschen CSS zu handhaben das Aussehen des Kopf div zu ändern. Wie Sie wahrscheinlich bereits das tun, können Sie ein wenig mit ihm spielen wie diese

1

halten Sie es einfach, warum müssen Sie es analysieren? Sie ersetzen nur eine Zeichenfolge durch eine andere.

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