JS / Jquery / RegEx - удалить все теги, кроме тегов с именем класса XYZ - PullRequest
1 голос
/ 11 сентября 2010

это сводит меня с ума ;-) У меня есть строка с различными тегами span ... Я хочу удалить все теги span, кроме тех, которые имеют имя класса XYZ ... Проблема в том, что я не нашел решение оставитьзакрывающий тег ...

Моя отправная точка - это регулярное выражение:

 text = text.replace(/<\/?[^>]+(>|$)/g, "");

Но все, что я пытался сказать "НЕ ДЕЛАЙТЕ, ЕСЛИ СООТВЕТСТВУЕТ classnameXYZ Не удалось до сих пор ...

Есть идеи? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 11 сентября 2010

Хорошо, это работает для моих нужд; -)

                $('#text > span').each(function(intIndex){
                    var word;
                    if ($(this).hasClass('checked')) {
                        word = "<span>"+$(this).html()+"</span>";
                    } else {
                        word = $(this).html();
                        word = word.replace(/<\/?[^>]+(>|$)/g, "");
                    }
                    console.log(word);
                });
0 голосов
/ 12 сентября 2010

Это можно сделать с помощью регулярного выражения, более чем на ответ необходимо кэшировать весь HTML, что будет медленно, попробуйте следующий код, это может помочь :)

$(function()
    $('#text > span').each(function() {
       if(!$(this).hasClass('XYZ')) { 
           $(this).remove();
       }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...