Удалите тег вокруг текстового узла с помощью JavaScript

Получите все возникновение группы

let m=[], s = "something format_abc  format_def  format_ghi";

s.replace(/(?:^|\s)format_(.*?)(?:\s|$)/g, (x,y)=> m.push(y));

console.log(m);
5
задан Karim 2 September 2009 в 20:00
поделиться

7 ответов

Вы получаете текст и заменяете им диапазон:

var wrap = $('.highlight');
var text = wrap.text();
wrap.replaceWith(text);
18
ответ дан 18 December 2019 в 05:40
поделиться

оберните его в плагин

(function($) {   
    $.fn.tagRemover = function() {           
        return this.each(function() {            
        var $this = $(this);
        var text = $this.text();
        $this.replaceWith(text);            
        });            
    }    
})(jQuery);

, а затем используйте вот так

$('div span').tagRemover();

Working Demo здесь - добавьте / edit к URL-адресу, чтобы поиграть с кодом

6
ответ дан 18 December 2019 в 05:40
поделиться

Это работает:

wrap = $('.highlight');
wrap.before(wrap.text());
wrap.remove();
3
ответ дан 18 December 2019 в 05:40
поделиться

Это сделает то, что вы хотите, а также сохранит все теги в диапазоне .highlight.

content = $(".highlight").contents();
$(".highlight").replaceWith(content);
3
ответ дан 18 December 2019 в 05:40
поделиться

text.replace (/ ] + (> | $) / G, "");

0
ответ дан 18 December 2019 в 05:40
поделиться

было бы намного проще просто изменить класс диапазона, чем фактически удалить его. Вы можете использовать чистый javascript:

document.getElementById("span id").className="";

или функцию toggleClass jquery:

 $("element").toggleClass("highlight");

Кроме того, в лучших практиках говорится, что вам не следует использовать имена классов, подразумевающие стиль, например, выделение. Попробуйте вместо этого "подчеркнутый". : D

0
ответ дан 18 December 2019 в 05:40
поделиться

Улучшенный плагин развертывания:

$.fn.unwrap = function() {
  this.parent(':not(body)')
    .each(function(){
      $(this).replaceWith( this.childNodes );
    });

  return this;
};

от Бена Алмана

-1
ответ дан 18 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

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