Javascript 可视化克隆DOM元素

Javascript 可视化克隆DOM元素,javascript,jquery,dom,clone,Javascript,Jquery,Dom,Clone,我在布局的顶部有一个搜索框 <input type="text" id="rec_search_input" ...> 我想把这个元素克隆到第二个点,它必须看起来一样,行为也一样 现在我知道一个ID必须是唯一的,但是,。。想象一下,就像一个unix符号链接,可以从不同的目录访问相同的文件 是否可以克隆DOM元素并重用其附加的样式+事件处理程序 一个合适的解决方案是给.cloneNode()一个新的ID,并且只对元素的类而不是它的ID应用CSS。因此: var clone = d

我在布局的顶部有一个搜索框

<input type="text" id="rec_search_input" ...>

我想把这个元素克隆到第二个点,它必须看起来一样,行为也一样

现在我知道一个ID必须是唯一的,但是,。。想象一下,就像一个unix符号链接,可以从不同的目录访问相同的文件


是否可以克隆DOM元素并重用其附加的样式+事件处理程序

一个合适的解决方案是给
.cloneNode()
一个新的ID,并且只对元素的类而不是它的ID应用CSS。因此:

var clone = document.getElementById("rec_search_input").cloneNode();
clone.id = "some other id";
…然后将其附加到DOM中的其他位置(例如,通过
appendChild
insertBefore
等)。(旁注:由于您的元素是
输入
,因此它不能有子元素,但如果您将其用于其他用途,则可以使用
cloneNode(true)
克隆其子元素;然后旋转它们以确保它们的
id
值是唯一的。)

在某种程度上,你可以“欺骗”。浏览器或任何东西都不会强制执行ID唯一性,CSS将应用于具有相同ID的元素,即使有多个ID


但是,正如您可能知道的,如果您有重复的ID,像
getElementById
这样的JavaScript函数将无法预期地工作。

一个合适的解决方案是为
.cloneNode()
提供一个新的ID,并且只将CSS应用于元素的类而不是其ID。因此:

var clone = document.getElementById("rec_search_input").cloneNode();
clone.id = "some other id";
…然后将其附加到DOM中的其他位置(例如,通过
appendChild
insertBefore
等)。(旁注:由于您的元素是
输入
,因此它不能有子元素,但如果您将其用于其他用途,则可以使用
cloneNode(true)
克隆其子元素;然后旋转它们以确保它们的
id
值是唯一的。)

在某种程度上,你可以“欺骗”。浏览器或任何东西都不会强制执行ID唯一性,CSS将应用于具有相同ID的元素,即使有多个ID


但是,正如您可能知道的,如果您有重复的ID,像
getElementById
这样的JavaScript函数将无法预期地工作。

一个合适的解决方案是为
.cloneNode()
提供一个新的ID,并且只将CSS应用于元素的类而不是其ID。因此:

var clone = document.getElementById("rec_search_input").cloneNode();
clone.id = "some other id";
…然后将其附加到DOM中的其他位置(例如,通过
appendChild
insertBefore
等)。(旁注:由于您的元素是
输入
,因此它不能有子元素,但如果您将其用于其他用途,则可以使用
cloneNode(true)
克隆其子元素;然后旋转它们以确保它们的
id
值是唯一的。)

在某种程度上,你可以“欺骗”。浏览器或任何东西都不会强制执行ID唯一性,CSS将应用于具有相同ID的元素,即使有多个ID


但是,正如您可能知道的,如果您有重复的ID,像
getElementById
这样的JavaScript函数将无法预期地工作。

一个合适的解决方案是为
.cloneNode()
提供一个新的ID,并且只将CSS应用于元素的类而不是其ID。因此:

var clone = document.getElementById("rec_search_input").cloneNode();
clone.id = "some other id";
…然后将其附加到DOM中的其他位置(例如,通过
appendChild
insertBefore
等)。(旁注:由于您的元素是
输入
,因此它不能有子元素,但如果您将其用于其他用途,则可以使用
cloneNode(true)
克隆其子元素;然后旋转它们以确保它们的
id
值是唯一的。)

在某种程度上,你可以“欺骗”。浏览器或任何东西都不会强制执行ID唯一性,CSS将应用于具有相同ID的元素,即使有多个ID


但是,正如您可能知道的,如果您有重复的id,像
getElementById
这样的JavaScript函数将无法预期地工作。

您没有查看吗?您没有查看吗?您没有查看吗?问题是,我应该提到这一点,搜索框id上附加了大约2k行JavaScript代码,几个文件,几个ajax请求,跟踪,建议,提前键入,…问题是,我应该提到这一点,搜索框id上有大约2k个Javascript行,几个文件,几个ajax请求,跟踪,建议,提前键入,…问题是,我应该提到这一点,搜索框id上有大约2k行Javascript代码,几个文件,几个ajax请求,跟踪,推荐,提前键入,…问题是,我应该提到这一点,搜索框id上有大约2k行Javascript代码,几个文件,几个ajax请求,跟踪,推荐,提前键入。。。