从HTML中复制内容插入

本文介绍了一种使用JavaScript动态调整床位布局的方法,通过遍历数据库数据,实现床位的自动生成与编号,确保布局与数据同步更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不知道大家有没有遇到过同一种内容却要随数据库数据的增减而增减的情况呢?就好像是下图中的床位一样。我要它随着数据库的数据增加而增加,数据库的数据减少而减少这种情况下可以利用js复制前一个完整的代码块再从后面入。
在这里插入图片描述
直接复制的代码就是这样的,很短也很实用。
$.post(“addkiss”, function (obj) {
var content = $(’#col’).html();
$(’#col’).after(content);//内容后插入
console.log(obj);
});但是它的样子是这样的,明显不符合要求。样子有了,但是它右边少了一个床位。原来六个,现在五个。而且编号没变。
在这里插入图片描述
简便的方法不适合那只能用最笨的方法了。基本方法没变。就是手动复制了它的代码下来从新编辑一下。把编号也跟着循环这样编号就会自增了。这样做就是代码量会多一点,不过效果还是满意的。

for (var i = 0; i < obj.length; i++) {
                    if ((i+2)>9) {
                        var a = i + 2;
                    } else {
                        var a = "0"+(i + 2);
                    }
  var content = "<div class='col-lg-2 col-md-3 col-sm-3 col-xs-12'>" +
                  "<div class='panel bk-widget bk-border-off bk-webkit-fix'>" +
                    "<a class='panel-body bk-bg-white bk-bg-darken text-center'>" +
                   "<img src='/Moimg/QJ86281931098.jpg' style='height:50px;'/>" +
                   "<div class='berth' style='margin-top:10px;'>" +
                   "<div class='col-lg-1'><span>" +a+ "</span></div>" +
                   "<div class='col-lg-6'>" +
                   "<div class='checkbox-custom checkbox-success'>" +
                   "<input type='checkbox' id='nullBed'>" +
                   "<label class='form-check-label' for='nullBed'></label>" +
                    "</div>" +
"</div>" +
"</div>" +
"</a>" +
"</div>" +
"div>";
 $('#coll').before(content); before是在前面插入

}
在页面上给一个空的盒子在这个空盒子前面插入,如果直接插入顺序会倒过来。这样子写虽然代码量多,但方便修改添加的内容。下面就是用这个方法做出来的效果。是不是比上一个方法做出来的好看多了呢
在这里插入图片描述

<think>好的,用户想在Quill富文本编辑器中通过复制插入HTML并进行相关设置。首先,我需要回忆Quill处理HTML的方式。Quill使用自己的Delta格式来维护内容,直接插入HTML可能会遇到问题,因为Delta和HTML结构不同。用户可能需要一个将HTML转换为Delta的方法。 首先,应该考虑使用官方提供的模块,比如HTML-Edit或Clipboard模块。记得Quill的Clipboard模块负责处理粘贴事件,可以自定义处理HTML内容。需要覆盖其addMatcher方法,定义如何将HTML元素转换为对应的Delta操作。 然后,可能需要引入第三方库如html-to-delta,将HTML转换为Delta格式。这需要用户安装并正确配置该库。同,要注意HTML标签的过滤,避免XSS攻击,所以需要设置白名单,只允许特定的标签和属性。 另外,用户提到在无内容,innerHTML默认是<p><br></p>,这可能需要在初始化配置empty内容,或者处理默认值的情况。需要检查Quill的配置选项,是否有相关的设置。 接下来,考虑自定义按钮插入HTML模板。用户可能需要通过注册工具栏处理程序,在插入使用clipboard.dangerouslyPasteHTML方法,但需要注意安全风险,所以建议使用转换后的Delta而不是直接插入HTML。 最后,综合这些步骤,确保配置正确,并进行测试。可能需要提供代码示例,说明如何初始化Quill,配置Clipboard,处理HTML转换,以及自定义插入按钮。同提醒用户注意XSS防护和Delta格式的正确性。</think>### 如何在Quill富文本编辑器中通过复制插入HTML并进行配置? #### 1. **启用HTML转换支持** Quill默认不直接支持HTML粘贴,需通过`Clipboard`模块配置: ```javascript import Quill from 'quill'; const Clipboard = Quill.import('modules/clipboard'); class CustomClipboard extends Clipboard { convert(html) { const delta = super.convert(html); // 默认转换 // 自定义HTML处理逻辑 return this.sanitize(delta); } } Quill.register('modules/clipboard', CustomClipboard, true); ``` 此代码重写了剪贴板的HTML转换逻辑,支持自定义标签过滤[^2]。 #### 2. **配置HTML白名单** 在初始化定义允许的HTML标签和属性: ```javascript const quill = new Quill('#editor', { modules: { clipboard: { allowed: { tags: ['p', 'a', 'ul', 'li', 'img'], attributes: ['href', 'src', 'alt'] } } } }); ``` 这会过滤非白名单的HTML元素,防止XSS攻击[^1]。 #### 3. **使用html-to-delta转换器** 安装转换工具: ```bash npm install html-to-delta ``` 在代码中实现转换: ```javascript import HtmlToDelta from 'html-to-delta'; const converter = new HtmlToDelta(); quill.clipboard.addMatcher('text/html', (node, delta) => { const html = node.innerHTML; return converter.convert(html); }); ``` 这可将复制HTML自动转为Delta格式插入编辑器[^1]。 #### 4. **直接插入HTML内容** 通过API强制插入已验证的HTML: ```javascript const htmlContent = '<div class="custom">内容</div>'; const range = quill.getSelection(); quill.clipboard.dangerouslyPasteHTML(range.index, htmlContent); ``` 注意:`dangerouslyPasteHTML`需配合内容过滤使用。 #### 5. **自定义HTML插入按钮** 在工具栏添加HTML插入功能: ```javascript const toolbar = quill.getModule('toolbar'); toolbar.addHandler('html', () => { const html = prompt('输入HTML代码'); quill.clipboard.dangerouslyPasteHTML(html); }); ``` 需在工具栏配置中声明`html`按钮。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值