问题标签 [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 投票
0 回答
90 浏览

javascript - 使用 cloneNode 的 JavaScript 模板引擎

是否有一个 JS 模板引擎不能处理字符串,而是处理文档片段?

字符串的问题在于需要将它们转换为 DOM 对象,这是一个缓慢且昂贵的操作,尤其是在您需要制作大量单独的片段时。

我推出了自己的简单引擎,并针对 Underscore 的引擎进行了测试。但是我的引擎非常基础——除了每个迭代器之外,它不支持任何逻辑。测试表明它工作得更快......你可以自己尝试一下:

http://jsperf.com/ngit-template/8

我想知道是否有一个完整的解决方案可以这样工作?

0 投票
1 回答
302 浏览

javascript - 访问克隆结构中的重复 ID

我发现 cloneNode(true) 的一个行为是出乎意料的,并认为我会出于两个原因记录它。#1 - 从其他人那里得到证实,我认为我看到的是真实的。#2 - 给遇到这个问题的其他人一个提示,因为我在这个网站上没有找到这个问题的参考。

allElements.length 返回 0,尽管我知道有许多元素确实包含 id 标签名称。

为了测试,我将 'id' 更改为 'input' 并且长度现在是准确的,这意味着树结构存在,但无法通过 'id' 访问它。我写了一个 DOM walker 函数,果然,树在那里并且加载了 id 标签名称。我得出的结论是,克隆产生的重复 id 名称使通过 id 进行检索变得不可能。Mozilla 开发者网站警告说,克隆会导致重复的 id,并建议修改这些重复项以再次实现唯一性,但没有提供实现它的方法。我认为一个简单的循环就足够了,但这显然不是真的。

我尝试创建一个片段( document.createDocumentFragment() )并在其下方附加 danglingNode 以查看是否可以通过“id”提供访问,但没有这样的运气。

最终,我决定使用前面提到的 DOM walker 来不仅遍历树,而且还使用新的 id 名称修复它。该功能如下:

有没有人有另一种处理克隆结构来修改重复 ID 的方法?

谁能看出我所做的有什么问题?

我错过了什么明显的东西吗?

0 投票
1 回答
209 浏览

javascript - 使用 Javascript 问题克隆表中的表单字段

在下面的代码中,它可以很好地克隆表,但它不足以重命名表中每个表单字段的输入。例如参加者 1、参加者 2、参加者 3 等。

有没有办法而不是仅仅抓住 NewEl.children 一种方法来查找表中的所有输入元素然后重命名它们?

我不是要添加一行,我需要克隆整个表。

非常感谢您在网络世界中提供的任何帮助。

0 投票
1 回答
3254 浏览

internet-explorer - IE 11 是否支持深度 cloneNode?

在 IE 直到版本 10 中,cloneNode不支持使用节点的深度克隆。

对于 IE,我innerHTML用于克隆。cloneNode(true)可以在 IE 11 中使用吗?

IE 11 支持吗?

(我没有办法测试这个)

0 投票
3 回答
3581 浏览

javascript - Elements outside is taken inside

I have the following code:

I wanted to make the clone of the div1 to appear above the cloneNodebutton and hence kept the button outside the <body>. But each time I click on the cloneNodebutton the new element appears below the cloneNodebutton although I appended the new node to the <body>element(using appendChild()) and the button is outside the <body> element. So, are all the elements even those outside the <body>(as specified in the script) included or considered inside the <body> at runtime. Please help me understand this.

Check the demo

0 投票
1 回答
1203 浏览

javascript - 为什么不选择和 textarea 值更改在克隆时像输入元素一样更新?

至少在 Firefox 中,当cloneNode(true)在动态或用户更改的 textarea 或 select 元素上使用时,value不会保留属性(DOM 也不会更改以反映动态更改),而对于输入元素,属性的更改value或由用户更改被反映在 DOM 中(因此它在调用 cloneNode 时被保留)。为什么会有这种区别?

更新:

  1. 我的意思是问:这种行为是否在某处的规范中规定?(或在错误报告中详细说明?)
  2. 示例位于:http: //jsfiddle.net/9RSNt/1/
0 投票
3 回答
4335 浏览

javascript - 如何'getelementsbytagname.onclick'

我试图让我cloneNode附加input标签并给它一个新onclick值。它只是input.onclick = function(){clicker(iden);};那不起作用。此示例的唯一目的是更改 onclick 标记,就像我设法更改 ID 一样。有人可以帮忙吗?

脚本

身体

0 投票
0 回答
20 浏览

internet-explorer-8 - IE8 中的页脚标签 cloneNode

我正在尝试<footer>使用函数克隆 IE8 中的元素,cloneNode但结果是我得到了<:footer>元素。在 IE8 的控制台和适当的浏览器(Chrome for ex)中尝试此代码: document.createElement('footer').cloneNode() 在 IE8 中,您将获得<:footer>element 而不是<footer>. 有没有解决这个问题的方法?

0 投票
1 回答
152 浏览

dom - 简单的 DOM cloneNode 问题

我在使用 cloneNode 时遇到了另一个相当简单的问题。我正在尝试使用 java 将一个 li 节点复制回它自己的 ul 中,但我似乎无法找到它为什么不起作用。我尝试了多种方法,但我一生都无法弄清楚。我要这个:

看起来像这样:
<ul id="mylist"> <li><h3>My Image:<img src="myImage.png"></h3></li> <li><h3>My Image:<img src="myImage.png"></h3></li> </ul>

我正在使用这个功能:

不确定为什么它不起作用,我从在线资源中提取了几乎相同的代码。如果有人可以帮助我的新手问题,我将非常感激。

0 投票
1 回答
290 浏览

javascript - 如何在 javascript 中 cloneNode() 并转换这些 CSS 弧?

我正在使用 css 制作一个“饼形楔形”,方法是制作一个圆圈,剪掉一半,然后变换旋转另一个剪裁矩形,以便只显示 25 度弧。这很好用;这里有一个明确定义了六个这样的饼楔的例子。

然而,我想做的只是定义一个饼楔,然后使用 cloneNode 通过 javascript 制作其余部分,如下所示:

此(非工作)代码的示例在这里。我究竟做错了什么?