Манипулирование строками в jQuery - PullRequest
6 голосов
/ 02 марта 2009

У меня есть div, который сворачивается при нажатии на заголовок текста. Я хочу изменить заголовок с «+ filters» на «- filters» соответственно (когда div свернут или развернут)

Как я могу выполнить это с помощью jQuery:

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

Ответы [ 3 ]

13 голосов
/ 02 марта 2009

Неважно, я понял это

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

Если это не правильный путь, я буду признателен за хедз-ап

4 голосов
/ 02 марта 2009

Я бы сделал:

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

Это потому, что я бы использовал класс плюс и минус, чтобы обработать немного CSS, чтобы изменить внешний вид заголовка div. Как вы, вероятно, уже делаете это, вы можете немного поиграть с этим, как это:)

1 голос
/ 03 марта 2009

будь проще, зачем тебе это разбирать? Вы просто заменяете одну строку другой.

if(headerDiv.text() == '+ filters')
{
    headerDiv.text() == '- filters';
}
elseif(headerDiv.text() == '- filters')
{
    headerDiv.text() == '+ filters';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...