Jquery заменить часть строки в любом классе - PullRequest
0 голосов
/ 22 октября 2009

Я пытаюсь сбросить класс для любых ранее выбранных ссылок, удалив конец имени класса.

При нажатии ссылки на класс добавляется «_selected», так что изображение остается выделенным. Когда нажимается другая ссылка, я пытаюсь удалить «_selected» из любой ссылки, которая могла быть выбрана ранее (многие ролловеры на странице).

Похоже, должно работать следующее:

$ ('a'). Attr ('class'). Replace (/ _ selected / g, '');

Разве это не ищет все ссылки с классами и не заменяет экземпляры "_selected" ничем?

Есть ли лучший способ посмотреть на это? Новое в jQuery ... Спасибо

Ответы [ 2 ]

2 голосов
/ 22 октября 2009

Вы можете поместить более одного класса в элемент, например:

<a class="someClass selected" />

Итак, с помощью jQuery:

$("a.selected").removeClass("selected");

и, конечно, ранее вы добавили его с помощью

$("your-selector").addClass("selected");

И вам нужно это определить, конечно же

<style>
 A.selected {
     /*your styles here*/
 }
</style>

Не совсем то, что вы хотите, но я думаю, что это то, что вам нужно:)

На самом деле, то, что вы хотите:

$("a").each(function(){
    $(this).attr("class", $(this).attr("class").replace(/_selected/g,""));
});
0 голосов
/ 22 октября 2009

$ ('a'). Attr ('class') будет возвращать строку 'class' для каждого элемента jQuery 'a', а не сам элемент ...

Я думаю, вы должны сделать что-то подобное:

$ ('a'). Each (function () {

$ (this) .attr ('class', $ (this) .attr ('class'). Replace (/ _ selected / g, ''));

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...