听起来很疯狂,但我只是想知道我是否可以有一个元素(任何东西,小的或复杂的),然后在其他地方有一个克隆元素,完全模仿第一个元素上更改的所有内容。
我知道使用JavaScript和jQuery可以很容易地实现这样的功能,但是我想到的任何解决方案都涉及到每个变量(或独立修改的单独元素示例)
例如
<div class="class"></div>
<div class="class"></div>
<div class="class"></div>
$('.class').css('color','blue');
这段javascript / jQuery将选择每个元素示例,并将蓝色单独应用于每个元素。
我想知道的是,如果有一种方法来改变一个单一的元素,这将反映在元素副本。
所以克隆元素没有自己的属性可以单独修改,它们实际上使用了原始元素的属性,当原始元素的属性被修改时,克隆元素也会被修改,因为它们的内部状态引用了原始元素。
这样的构想存在吗?
我的推理是这样的:
如果你有1000个元素。每个元素都很大。一个元素包含如下内容:
.attributes
.baseURI
.childNodes
.children
.className
等等......并且每个元素的EACH属性都是COPIED。这就是.baseURI
和.clientWidth
的1000个副本,对吗?如果是这样的话,那肯定很糟糕。
如果有一个元素,那么就会有一个.attributes、.children等,并且所有克隆的元素都会使用它们。
编辑
好吧,再澄清一下。
假设你有一个动态的选择框,它的选项可以根据事件驱动的javascript/ AJAX 应用程序中发生的各种事件而改变,然后你必须在页面的不同位置有同一个选择框的多个副本,处理一个选择框,并让所有其他的html副本自动改变会更有效。而不必用JavaScript来处理它们。我认为这显然必须是某种本地支持,但我甚至不确定这种本地支持是否存在。
它可能是一个HTML5规范
3条答案
按热度按时间ghhkc1vu1#
你有办法改变一个独特的东西,并同时应用于所有元素,这是一个:
CSS。
如果您有许多相同的类,例如:.testclass,并且您希望更改所有background-color,首先,创建一个名为test.css的文件,并将其放入页面的同一根文件夹中。
将此css放入您的test.css:
执行该javascript代码:
然后javascript将使页面加载一个新的css,其中包含用于apply的背景色代码,以应用于所有具有类**.testclass**的元素。
这样,您就不会进行迭代并同时应用于所有元素。
--编辑--
我知道你想要什么了。我已经找到了如何克隆DOM,我克隆了一个,然后追加到正文,看这个:
我希望你能做你想要的:)(我已经花了一段时间与kkk。
u5rb5r592#
如果我没理解错的话,您可以使用
.each()
。迭代一个jQuery对象,为每个匹配的元素执行一个函数。
示例:
Demo .
更新日期:
你也可以这样做:
disbfnqx3#
我想你要找的是一个可以应用于所有1000个元素的CSSStyleRule。你只需要改变一个CSSStyleRule的属性,而不需要循环遍历所有1000个元素并改变每个元素的样式属性。
例如,它可能如下所示: