Удалите все классы, которые начинаются с определенной строки

Посмотрите на jQuery Toggle

HTML:

Hello World

jQuery:

jQuery(document).ready(function(){
    jQuery('#hideshow').live('click', function(event) {        
         jQuery('#content').toggle('show');
    });
});

Для версий jQuery 1.7 и более новое использование

jQuery(document).ready(function(){
        jQuery('#hideshow').on('click', function(event) {        
             jQuery('#content').toggle('show');
        });
    });

Демо

97
задан bluish 28 March 2015 в 09:36
поделиться

5 ответов

С jQuery фактический элемент DOM в индексном нуле, это должно работать

$('#a')[0].className = $('#a')[0].className.replace(/\bbg.*?\b/g, '');
58
ответ дан bluish 24 November 2019 в 05:24
поделиться

Ответ Prestaul был полезен, но он не вполне работал на меня. JQuery способ выбрать объект идентификатором не работал. Я должен был использовать

document.getElementById("a").className

вместо

$("#a").className
0
ответ дан Brad 24 November 2019 в 05:24
поделиться

в http://www.mail-archive.com/jquery-en@googlegroups.com/msg03998.html говорится:

... и .removeClass () удалил бы все классы...

Это работает на меня;)

аплодисменты

4
ответ дан 24 November 2019 в 05:24
поделиться

Вам не нужен никакой jQuery определенный код для обработки этого. Просто используйте RegExp для замены их:

$("#a").className = $("#a").className.replace(/\bbg.*?\b/g, '');

можно изменить это для поддержки любого префикса, но более быстрый метод выше, поскольку RegExp будет скомпилирован только однажды:

function removeClassByPrefix(el, prefix) {
    var regx = new RegExp('\\b' + prefix + '.*?\\b', 'g');
    el.className = el.className.replace(regx, '');
    return el;
}
10
ответ дан Prestaul 24 November 2019 в 05:24
поделиться

Я также использую дефис'- 'и цифры для имени класса. Итак, моя версия включает '\ d -'

$('#a')[0].className = $('#a')[0].className.replace(/\bbg.\d-*?\b/g, '');
0
ответ дан 24 November 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: