【去除样式】jquery粘贴内容时去除样式,仅粘贴文本

  • 本文收录于《HTML5与jQuery教程》专栏,此专栏聚焦于HTML5网页开发中的技巧与常用方法,将持续更新,欢迎大家订阅!
  • ​​个人主页:有梦想的程序星空
  • ​​个人介绍:小编是人工智能领域硕士,全栈工程师,深耕Flask后端开发、数据挖掘、NLP、Android开发、自动化等领域,有较丰富的软件系统、人工智能算法服务的研究和开发经验。
  • ​​如果文章对你有帮助,欢迎​​关注​​点赞​​收藏​​订阅。

问题:有时候,针对contenteditable="true"的<div>元素或是<table>元素,在粘贴内容时会将文本的标签样式如<span style="color:green"></span>一起粘贴过来,造成网页上内容提取时出现问题。

解决方法:

针对contenteditable="true"的<table>元素,其中包含id为tbody_test的<tbody>元素。

<table contenteditable="true">
    <tbody id="tbody_test">
    </tbody>
</table>

使用DOM操作动态添加了多个class="td_test_class"的<td>子元素

使用如下jquery的paste事件方法去除样式:

$("#tbody_test").on('paste',"#tbody_test .td_test_class", function(e){        
        e.stopPropagation();
        e.preventDefault();
        var text = '', event = (e.originalEvent || e);
        if (event.clipboardData && event.clipboardData.getData) {
            text = event.clipboardData.getData('text/plain');
        } else if (window.clipboardData && window.clipboardData.getData) {
            text = window.clipboardData.getData('Text');
        }
        //去除文本头尾的空白符
        text = text.trim();

        if (document.queryCommandSupported('insertText')) {
            document.execCommand('insertText', false, text);
        } else {
            document.execCommand('paste', false, text);
        }
})

以上方法去除了剪贴板内容中的样式,使得剪贴板保留纯文本内容。

扩展:

(1)如果td元素中本身存在空格、换行符等内容,可以采用如下方式去除:

function noSpaceBr(text){
    text = text.replace(/&nbsp;/ig, "");
    text = text.replace(/<br>/ig, "");
    text = text.trim();
    return text
}

(2)也可以采用以下方式去除部分html标签的样式:

function noHtmlTag(str){
  return str.replace(/<[^>]+>/g,"");
}

关注微信公众号【程序遇上智能星空】,了解软件系统和人工智能算法领域的前沿知识,让我们一起学习、一起进步吧!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序遇上智能星空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值