2009-03-02 21 views
6

私は、テキストヘッダをクリックして折り畳まれたdivを持っています。私はに「+フィルタ」からヘッダーを変更したい「 - フィルター」(div要素が折りたたままたは拡張される)に応じてjQueryの文字列操作

私はjQueryを使ってこれを実行するにはどうすればよい:

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

答えて

13

気にしないよう、私は、これは正しい方法ではない場合、私は感謝し

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

それを考え出しましたヘッドアップ

4

私はどうなる:

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

これを私は、ヘッダーのdivの外観を変更するCSSのビットを処理するために、クラスのプラスとマイナスを使用しているため。あなたはおそらくすでにあなたはこのようにそれを少し遊ぶことができる、ということをやっている:)

1

あなたはそれを解析する必要があるのですか?ある文字列を別の文字列に置き換えるだけです。

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