如何在所有元素中使用 jQuery 删除除字体粗细之外的所有样式



我在我的应用程序中使用 nicedit作为编辑器,我们网站的用户使用粘贴来自 MS word 或其他一些来源的数据,因此 UI 中断,因此我们决定使用 jquery 从 html 中删除所有格式。

我所做的是删除所有内联样式和类,但它正在产生问题,因为它也删除了粗体和斜体,我们希望保留它。

是他们删除所有样式的任何简单方法,除了使用 jQuery 粗体。

例:

<div style="color:red; font-size:13px; font-weight:bold;">test div </div>

在上面的元素中,我希望它为

<div style="font-weight:bold;">test div </div>

我还没有测试过它,试试它是否有效

 $('div').each(function(){
   weight = $(this).css('font-weight');
   $(this).attr('style','');
   $(this).removeClass();
   $(this).css('font-weight',  weight);
});

我认为唯一的方法是存储您想要的样式,将它们全部删除,然后再次设置它们。

$('.selector').each(function() {
  var keepStyle, $el;
  $el = $(this);
  keepStyle = {
    font-weight: $el.css('font-weight'),
    font-style : $el.css('font-style')
  };
  $el.removeAttr('style')
    .css(keepStyle);
})

您可以使用 jquery 数据方法将此属性存储为数据并在清除所有样式后恢复

var $temp = $('<div><div style="color:red; font-size:13px; font-weight:bold;">test div </div></div>');
 $temp.find('*').each(function(){
    var fontWeight = $(this).css('font-weight');
$(this).removeAttr('style');
if(fontWeight!=undefined){
     $(this).attr('style','font-weight:'+fontWeight);
}
});

相关内容

  • 没有找到相关文章

最新更新