2009-03-02 53 views
6

Tôi có một div thu gọn khi nhấp vào tiêu đề văn bản. Tôi muốn thay đổi tiêu đề từ "bộ lọc +" thành "- bộ lọc" phù hợp (khi div được thu nhỏ hoặc mở rộng)Thao tác chuỗi trong jQuery

Làm thế nào tôi có thể thực hiện điều này với jQuery:

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

?

Trả lời

13

Đừng bận tâm, tôi figured it out

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

Nếu đây không phải là cách chính xác, tôi đánh giá cao một đầu lên

4

tôi sẽ làm:

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

này, vì tôi sẽ sử dụng cộng với lớp và trừ để xử lý một chút css thay đổi giao diện của div tiêu đề. Khi bạn đang có thể đã làm điều đó, bạn có thể chơi một chút với nó như thế này :)

1

giữ cho nó đơn giản, tại sao bạn cần phải phân tích cú pháp đó? bạn chỉ cần thay thế một chuỗi bằng một chuỗi khác.

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