问题标签 [clonenode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1216 浏览

php - PHP DOMNode insertBefore(不允许修改错误)

我注意到,当尝试调用 DOMNode 的 insertBefore 方法时,其中要插入的节点来自另一个文档(即不同于参考节点插入的节点),PHP 运行时会在消息所在的位置生成 DOMException “不允许修改错误”。

尽管我确实看到一些提到插入的节点是只读的,但关于这个问题的文档似乎很少。

我发现可行的解决方法是克隆来自不同文档的节点并插入克隆。例子:

我的问题是双重的:

1)为什么我必须克隆这个节点才能执行插入?

2)这是执行此操作的最有效方式(假设克隆的子节点可能包含多个子节点和孙子节点的多个层次结构)?

0 投票
2 回答
8020 浏览

javascript - Javascript Clonenode() - 通过 id 获取元素?

我在这里摆弄这个javascript代码

http://jsfiddle.net/7Sd4W/4/

我试图让它克隆一个 ID = "sel0" 的选择元素

然后,当它克隆它时,我希望它创建相同的选择元素,但使用 "sel+i" ,每次克隆时 i 都会增加含义

id 将是 sel0、sel1、sel2、sel3、sel4 等。

我试着改变

document.getelementsbyID()

或者

document.getelementsbyname()

但是它似乎不起作用

谢谢

0 投票
1 回答
352 浏览

javascript - 克隆节点时如何保留样式

我想获取一个 html 文档(一本书的章节)并将其分成页面(一个 DIV 数组,每个包含一个适合 DIV 规定尺寸的 html 内容页面)。我使用以下代码(在此站点上找到!)遍历 DOM。

func 函数称为 test,如下所示。

我的页面生成正确,但是,我丢失了所有样式,如斜体、粗体、标题等。如果我尝试 clone(true),许多元素会重复多次。我怎样才能解决这个问题?提前致谢。

0 投票
2 回答
193 浏览

javascript - javascript:克隆对象及其节点

我似乎无法在任何其他问题中找到我正在寻找的东西。我想知道是否有办法克隆一个对象及其 DOM 节点。我试过了:

但这不会克隆任何节点,并且:

但这不会克隆为克隆节点提供功能并存储与节点有关的大部分信息的对象。我的意图是在页面加载时定义原始对象,然后克隆它并隐藏它,然后能够稍后再次克隆该对象。

我考虑过只克隆 DOM 节点,然后每次都重新创建对象,但是对象很大,需要大量代码来定义其所有属性和方法。

0 投票
1 回答
652 浏览

javascript - FireFox 中的 Javascript cloneNode 问题

下面的 JavaScript 在 Internet Explorer 中运行良好,但在 FireFox 中不起作用。

它在“NewField is undefined”处挂断,这将是一行:

这是将重命名该表行上的表单字段的循环。

在这里您可以看到整个页面http://www.sorenwinslow.com/CloneRowTest.asp

0 投票
3 回答
1388 浏览

javascript - IE 不需要在 TD 上使用 Javascript 动态添加新行

我编写了一个 JS 脚本来在表格上动态添加行。在选择元素更改时,此脚本读取设置为 display:none 的 HTML div,并使用 CloneNode(True) 方法克隆此模板。然后,它在占位符范围之前添加这个新对象。

这是我的代码 HTML+Javascript:

现在,我的问题是当我在 IE 浏览器(我检查的每个版本)上运行这个脚本时,它会在每个 TD 元素之后添加一个新行。这不是我想要的,也不是我在 Chrome、Firefox、Safari 等上的行为......

您可以使用除 IE 之外的所有内容浏览到http://www.geoemmelle.it/contatti.html,然后在第一个字段中选择“Preventivo”以启动脚本。然后,对 IE 执行相同操作并检查差异。

我真的不知道如何处理这个问题。有没有人知道这个问题?

预先感谢您的帮助!

编辑:

似乎在我添加的 DIV 中 TR 元素的每个 TD 元素之后都附加了一个“新行”。请帮助找出如何找到解决方案?

再次感谢。

0 投票
1 回答
1135 浏览

javascript - 访问/复制/克隆元素的事件监听器(或编辑 lineNumber 和 sourceName)

设想

我正在编写一个 Chrome 扩展程序/用户脚本来为第三方网站添加一点可用性。扩展的页面有一些元素通过 `addEventListener` 附加了`click` 事件监听器(每个元素,没有冒泡)(`onclick` 和其他属性为空)。我的扩展克隆(`cloneNode`)其中一个元素并将其附加到列表中。

例如有了这个,

我的扩展会添加一个 D 元素。


问题

扩展列表可以正常工作,但是当单击原始节点时,它们会执行预期的操作,而单击新节点则不会执行任何操作。


测试

测试 1

我检查了 Chrome 开发者工具中元素的事件侦听器,并尝试使用 `addEventListener` 将匿名函数复制到我的新元素中(确保复制参数),但这不起作用。它确实执行了一些预期的操作,但不是全部。

测试 2

我尝试了 anfilat 的建议,即使用 [this question][1] 中的技巧。我插入了一个 `script` 块,然后为新节点调用了 `addEventHanlder`,它确实有新的处理程序(使用 `sourceName` 指的是站点 - 页面,而不是 `.JS` 文件 - 而不是扩展名),但是它仍然抛出了一个未找到变量的错误。

假设

我怀疑这是一个域问题,因为点击处理程序调用了外部“.JS”中的函数,如下所示,事件侦听器的“sourceName”和“lineNumber”中引用了该函数。请注意,`listenerBody` 是相同的,但来源不同。

问题

有没有办法访问、复制或克隆元素的处理程序和/或编辑“lineNumber”和“sourceName”?

附录 A:图表

图 1:网站上引用 a 的原始元素的处理程序.JS(文件名稍作修改):

地点

图 2:引用扩展的新元素的处理程序:

延期

0 投票
1 回答
19469 浏览

jquery - $.clone 和 .cloneNode

我对 jQuery$.clone和 raw.cloneNode属性之间的区别有点困惑。

如果我在做

$('blah').cloneNode(true)这将在 jQuery 空间之外创建一个全局对象。

如果我使用

$('blah').clone(true)这将在 jQuery 空间内创建一个 jQuery 对象,但复制包括事件在内的所有内容?

如果我使用 jQuery,我应该坚持使用吗?.clone如果我更改我的代码,.cloneNode会有什么影响吗?

0 投票
1 回答
233 浏览

jquery - 如果我删除警报,则不会加载两个克隆的选择框

在此处输入图像描述

我有几个问题 - 选择引用表值时加载的第一个约束。

ISSUE 1 - 最后两个选择框名称 -Constraint on 应该从第一个约束 on.clone 选项。但不应该在前一个选择框中具有选定的选项。怎么做?

ISSUE 2 - 我的选择框在 javascript 调用中加载,但我必须为此添加警报,为什么?人口二选择的代码 -

人口优先选择的控制器代码-

GSP页面代码在这里-

问题 3-我需要在搜索后保留选择和输入的值(回发)。

请帮忙怎么办?

谢谢

0 投票
1 回答
14192 浏览

html - 垂直选取框删除空间

我想在我的页面中包含一些垂直选取框文本,<div>以便自动滚动内容。

我发现以下代码很有用;

但它在内容之后添加了一个空格。内容仅在整个文本向上滚动后才会出现(类似于重新启动)。我怎样才能避免(或删除)这个空白?

我在 Stack Overflow 中找到了它并且有一些注意事项cloneNode()。我不知道如何实现。

*注意:高度属性不相关。它具有相同的父级高度<div>