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请求,跟踪,推荐,提前键入。。。