如何删除 summernote 值中的 <p><br></p> 标签?

How to remove <p><br></p> tags in summernote value?

在 staring 中输入 space 时,我从 summernote textarea 中获取了以下代码,

<p><br></p><p><br></p><p><strong style="font-family: &quot;Open Sans&quot;, Arial, sans-serif; text-align: justify;">Lorem Ipsum</strong><span style="font-family: &quot;Open Sans&quot;, Arial, sans-serif; text-align: justify;">&nbsp;is simply dummy text of the printing and typesetting industry. </span><br></p><p><br></p><p><br></p>

但我想在存储到数据库之前删除起始 <p><br></p><p><br></p>

例如我想像下面这样存储,

<p><strong style="font-family: &quot;Open Sans&quot;, Arial, sans-serif; text-align: justify;">Lorem Ipsum</strong><span style="font-family: &quot;Open Sans&quot;, Arial, sans-serif; text-align: justify;">&nbsp;is simply dummy text of the printing and typesetting industry. </span><br></p>

如果您确定您可以实现类似的模式

var data='<p><br></p><p><br></p><p><strong style="font-family: &quot;Open Sans&quot;, Arial, sans-serif; text-align: justify;">Lorem Ipsum</strong><span style="font-family: &quot;Open Sans&quot;, Arial, sans-serif; text-align: justify;">&nbsp;is simply dummy text of the printing and typesetting industry. </span><br></p><p><br></p><p><br></p>';
while(data.startsWith('<p><br></p>')){
data=data.replace('<p><br></p>','')
}

while(data.endsWith('<p><br></p>')){
data=data.replace(new RegExp('<p><br></p>$'),'')
}
console.log(data)

只需删除空元素

$("p").each(function(){
    if (!$(this).text().trim().length) {
        $(this).remove();
    }
});

https://jsfiddle.net/ox32tjwg/

最好的方法是这样做:

$('.summernote_add').summernote({
    height: 250,
    callbacks: {
        onChange: function (contents) {
            if ($('.summernote_add').summernote('isEmpty')) {
                $(".add .panel-body").html('');
            } else {
                $(".add .panel-body").val(contents);
            }
            // $('.summernote_add').val(
            //     $('.summernote_add').summernote('isEmpty')
            //         ? null
            //         : contents
            // );
            summernoteValidatorAdd.element($('.summernote_add'));
        }
    }
});
callbacks: {
  onFocus: function (contents) {
    if($('.summernote').summernote('isEmpty')){
      $(".summernote").html(''); 
    }
  }
}

使用以下内容:

$('#summernote').summernote('code', '<text H>');

而不是:

$('#summernote').summernote('editor.insertText', '<text H>'));

对我有用!必须现在就做

callbacks: {
  onFocus: function (contents) {
    if($(this).summernote('isEmpty')){
      $("<your-selector>").html(''); //either the class (.) or id (#) of your textarea or summernote element
    }
  }
}

对于jQuery

$('.summernote').summernote({
    height: 250,
    callbacks: {
        onInit: function (c) {
            c.editable.html('');
        }
    }
});