使用标记脚本复制 HTML 块
copy html block with tags script
我有这样的html代码:
<div>
<div id="text">text></div>
<script>$("#text").val('some value');</script>
</div>
我通过.clone()
复制此html并在其中编辑html。结果:
<div>
<div id="1-text">text></div>
<script>$("#text").val('some value');</script>
</div>
我想更改标签脚本中的 id。 $("#1-text").val('other value');
我该怎么做?
您可以简单地在外部添加一个变量,该变量动态地告诉您要选择的内容。 因此,如果要使用循环遍历值,则可以执行以下操作:
$("#text_"+i).val('other value');
您还可以设置一个计数器,并在添加新的div 时增加 i 增量。所以它是灵活的。
我不确定你的最终目标是什么,但如果你试图在<script>
标签中操作javascript,我不推荐这种方法。因为我认为这会很麻烦。
如果你想复制整个 html 块,你应该将你的内联 javascript 代码作为容器绑定到这个块。不是同上。因此,当您移动或复制块时,您的脚本将能够找到与容器相关的任何元素。
<div id="containerOne" class="js-container">
<div class="js-text" data-text="some value">some value</div>
<script>
var $el = $("script").last().closest(".js-container").find(".js-text");
$el.text($el.data("text"));
</script>
</div>
请注意,使用"js-"前缀仅用于javascript操作,而不是用于css样式。
此外,您不需要更改脚本本身。您可以通过"data-"属性更改值。
在外部脚本中,您可以通过各种方法封装任何克隆逻辑。例如:
var myModule = {
clone: function(containerSelector) {
var $donorEl = $(containerSelector);
var $donorScript = $donorEl.find('script');
$script = $("<script />");
$script.text($donorScript.text());
$recipientEl = $donorEl.clone();
$recipientEl.attr('id', 'containerTwo');
var newValue = 'other value';
$('.js-text', $recipientEl).data('text', newValue);
$('body').append($recipientEl);
$('script', $recipientEl).replaceWith($script);
}
};
myModule.clone('#containerOne');
您可以看到工作示例。
相关文章:
- 使用JavaScript从网页复制HTML代码或图像链接
- 吞噬复制HTML并粘贴到不同的文件
- 什么是不复制HTML页面和子页面上代码的现代方法
- Fabricjs 在画布中复制 html
- 复制 html 元素以缩放到全屏的正确方法
- 手动复制 HTML 内容的指令
- 如何制作从网页复制HTML源代码的AppleScript
- 自动复制html表中的文本
- 动态复制HTML DIV与Javascript
- JavaScript复制HTML到剪贴板解释<比;因为,lt;和和gt;
- 在HTML文档中复制HTML元素和内容
- 复制html
- Setcontent在tinymce不复制html的样式
- 如何通过javascript复制HTML文档
- 在原始元素下方使用 Javascript 复制 html
- 使用标记脚本复制 HTML 块
- 如何复制 html 元素、文本和样式中的所有内容
- 如何编写 JavaScript 代码来复制 HTML 元素
- 使用 jQuery 通过按钮按下复制 HTML 代码块
- 从原始文档复制HTML到弹出窗口(使用JQuery)