Как использовать функцию обратного вызова removeClass ()? - PullRequest
1 голос
/ 07 ноября 2011

, поскольку jQuery 1.4 removeClass(); теперь принимает функцию в качестве аргумента.

В мой тег <body> добавлено несколько классов, например:

<body class="heading-helvetica para-georgia pattern-flowers">

Я хочубыть в состоянии заменить имена классов, и я считаю, что функция в removeClass() может помочь мне, но я не совсем понимаю документацию на сайте jQuery , и я не очень хорошо разбираюсь в Regex.

Как я могу заменить, например, heading-helvetica на heading-myriad или para-georgia на para-times и т. Д.

Ранее я использовал нечто подобное, что работает, только если имя класса егопытается заменить первый в списке имен классов:

$('#headings li').click(function(){
    var this_class = $(this).attr('id');
    $('body[class|="heading"]').removeClass();
    $('body').addClass(this_class);
});

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Вам понадобится получить список классов из тега body и выполнить итерацию / анализ их.

См. Эту статью для получения классов.

Получить список классов для элемента с jQuery

Вам нужно будет составить список классов для добавления и список классов для удаления. Использование функции в качестве параметра метода removeClass не является обязательным. Поскольку вам также необходимо добавить классы, возможно, это неправильный путь.

0 голосов
/ 07 ноября 2011

Если вы хотите обработать их все, вы можете использовать .attr() вместо этого.Пример:

var prev = $("body").attr('class'); $("body").attr('class', prev.replace('helvetica', 'myriad'));

Это довольно широко, хотя, в зависимости от того, что вы делаете, вам может быть лучше с removeClass() и addClass().

...