我在我的应用程序中使用 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);
}
});