问题标签 [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 回答
147 浏览

domdocument - PHP XML DOM 文档在子节点内移动子子节点

我有一个这样的xml:

虽然肯定有更好的方法可以做到这一点,但为了解析所有订单,我构建了一个这样的例程:

**** ADDED ****
我使用嵌套循环为每个产品创建一个 xml(每个 xml 包含有关买家、商品和销售的详细信息),然后将此 xml 传递给存储过程以生成用户/item/sale 记录:出于多种原因,我不能先大量导入用户,然后是项目,然后是销售,但是在构建销售 xml 时,我需要来自 Total Node 的一些详细信息,获取它们的一种方法是将 Total Node 移动到顶部XML,但显然在订单节点内
**** 已添加 ****

我需要在处理 Products 之前访问一些 Total 子节点我找到的唯一解决方案是在开始时移动 Total 节点,但是尽管尝试了很多次,但我未能成功:想法是将totalNodeand克隆appendbeforeOrderID节点

问题是我需要处理子文档并从节点本身选择要克隆的节点,而我发现的所有示例都克隆了完整的DocumentElement

也许可以使用更简单的解决方案XSLT

可以提出解决方案吗?

0 投票
2 回答
1458 浏览

javascript - Vanilla Javascript:如何多次使用克隆的 DOM 节点?

我正在创建一个非常基本的购物车。

它具有相关的下拉菜单和一个按钮,该按钮"Add more products"将再添加一行相同的下拉菜单。

有 2 个下拉菜单第二个菜单必须保留disabled,直到在第一个菜单中选择一个选项。数量输入必须disabled直到在第二个菜单中选择了一个选项。启用的Add more products数量是添加的

我正在使用cloneNode()为新行添加代码。

因为它只在我每次"Add more products"单击按钮时创建克隆时才起作用new_products();

我正在使用最后添加的行来创建新的Clone

添加了新行,但问题是第二个菜单,并且该行中的数量输入已经存在enabled

请尝试在 Vanilla(pure) JavaScript 中提供解决方案。

编辑1: 我已经走了一半。

在附加克隆之前,我尝试访问这些元素并更改disabled属性值。

function new_products()

但这仅适用于第二个下拉菜单。

它不适用于数量input控制。

代码片段:

0 投票
1 回答
78 浏览

javascript - 未按预期克隆

li如果用户单击按钮添加选择或者单击的输入是最后一个输入,我有一个克隆最后一个节点的 JavaScript 代码。右侧的十字按钮会删除它所在的节点。如果只剩下一个元素li,它不会删除。input

一切正常,除了:

  • 如果您开始li从下到上删除 s 直到只有一个input元素并单击输入元素,它将克隆并添加一个新的li. 现在,如果您单击第二个(克隆的)输入元素,它不会克隆。我在控制台中收到以下错误。

    /li>

另外,我将如何将focus事件侦听器附加到input元素并触发克隆过程而不与click事件冲突。我试过这样做,克隆被做了两次。input如果用户使用该键在 s 中导航Tab,并且最后一个input是焦点。我想触发克隆过程。

我会很感激任何帮助。

0 投票
2 回答
111 浏览

javascript - 仅在父级(元素外部)上的 onclick() 时 RemoveChild

如何避免closeWindow()调用#window#window-overlay当单击屏幕上的任意位置时,当前会与所有嵌套的子项一起删除。但我只想在点击#window-overlay而不是点击时这样做#window。所以#window可以有自己的点击事件。我绝对是 JS 的菜鸟。只是尝试在不使用display:block等的情况下做模态类的东西......想法很简单,无论如何,我的窗口总是会在其他所有内容之上,因为它被附加到document.body并且我不需要太关心 z-index碰撞和其他东西。同样,cloneNode 的性能也非常好。我知道,我的函数不可重用,但我稍后会处理这个问题。可能我需要处理e.stopPropagation()但不确定如何实现这一点。

0 投票
1 回答
113 浏览

javascript - 如何在 appendChild 后从外部文件显示 svg 符号

所以,基本上我想用来创建一些包含 svg 符号的组件。

如您所见,我指的是<use href="/svg/icons.svg#my-icon"/>在常规 html 中完美运行的外部 svg 图标文件。但后来我想做这个基本的 javascript 函数,图标本身在附加到 DOM 后不可见。

所以基本上它所做的就是克隆模板内容并附加到文档正文。它工作得很好,只是图标本身没有被渲染。在 DOM 中创建了一个 svg 节点,但图标在屏幕上不可见。当我<svg>在当前 HTML 文档中包含带有符号的内联文档并引用图标时,<use href="#i-my-icon"/>它会按预期工作。图标可见。在这种情况下,我怎样才能仍然使用外部.svg文件?我不想直接处理内联 svg 图标或在每个 html 文档或模板中包含图标集。

0 投票
2 回答
3187 浏览

javascript - 使用js cloneNode复制
模板和修改孩子

我想使用 cloneNode 并避免 JQuery 在 DOM 中复制 html 模板,修改(嵌套)子项及其 id(并附加到元素)。

但是,getElementById 在添加到文档之前不适用于克隆。在更改孩子的 ID 之前,我无法将克隆添加到文档中,所以有点 catch 22 ......

是否有最先进的非 JQuery 方式在文档中使用 html“模板”?

0 投票
1 回答
107 浏览

java - RemoveChild 删除第一个同名的孩子,但跳过下一个同名的孩子

我有这个节点

我正在尝试将此节点添加到另一个 XML 文件中并看起来像这样。

这是我使用的代码

由于某种原因,当循环通过第一个 IsoCodeLetter 节点并将其删除时,它会跳过下一个并转到 PostCode,但第二个 IsoCodeLetter 仍在新节点中,我将其附加到 XML 文件中,看起来像这样。

你有什么想法为什么会发生这种情况以及如何解决它?我正在使用 DOMParser 编写 XML 文件。

0 投票
1 回答
193 浏览

php - PHP 7.1 XML domDocument 克隆节点和子节点

我必须用 PHP 和 DomDocument 解决这个问题(simplexml 也可以)。我用谷歌搜索了很多,但没有找到一个正确的例子来学习如何做:

我有以下 eBay XML

我需要克隆(实际上是 4 次)<InventoryStatus>节点及其所有子节点:

并在当前节点下追加

请给一些提示

谢谢!

0 投票
1 回答
71 浏览

polymer - 聚合物 - cloneNode 包括 __data

我正在使用库dragula来做一些拖放操作。

Dragula 内部用于cloneNode(true)创建拖动元素的副本,该副本将附加到主体以在拖动时显示预览图像。

不幸的是,如果拖动聚合物元素,绑定的数据不会被克隆。结果,被拖动元素(例如<div>[[someString]]</div>)的内容是空的。

有解决方案吗?

我实际上不需要为我的元素绑定数据,它只是一个“只读”元素,显示一些在初始化后不会更改的数据。有没有办法以某种方式将字符串“解析”为 html 而不再被绑定?

已经谢谢你了!

0 投票
0 回答
28 浏览

javascript - 节点列表不存在/未传输到数组

我正在尝试为每个节点调用一个函数。当 notch 数组在 notchlick 函数中定义时,它不会创建数组。当我将它放在函数之外时,数组只包括原始节点而不是克隆。由于该数组是一个 htmlcollection,我假设它是一个实时列表。

克隆节点的行为与原始节点不同。当数组在函数外部声明时,这是问题的根源吗?还考虑到我对闭包的理解,我错过了为什么嵌套在函数中时数组不注册。