2011-12-21 72 views
0

我需要将一个div的位置,顶部,左侧,高度,宽度&边框分配给另一个div。由于我有多个div需要操作,因此我正在寻找一个使用jQuery的优雅解决方案。如何将一个div的所有属性分配给另一个div

请记住,两个div有不同的ID,我想保持这种方式。

预先感谢&最好的问候,sbguy

+0

可能的重复http://stackoverflow.com/questions/754607/can-jquery-get-all-css-styles-associated-with-an-element – matino 2011-12-21 13:13:34

+0

你可以使用CSS类,他们是为了.. 。(顺便说一下,身份证**必须**不一样,这不是一个选择;-)) – 2011-12-21 13:13:50

+0

我给你做了一个函数,但是我不能记录它:http://jsfiddle.net/qQHqU/ – 2011-12-21 13:27:53

回答

1

使用.clone()
http://api.jquery.com/clone/

+0

这不会克隆Id吗? – Deleteman 2011-12-21 13:16:19

+0

您可以在克隆后修改ID。 – Chibuzo 2011-12-21 13:25:23

+0

$('#div1')。clone()。attr('id','id_div2')。appendTo('place_you_want') – 2011-12-21 13:28:50

0

你能不只是添加一个类有问题的元素?如果不是,怎么是这样的:

function cloneCSS(source, receiver){ 
    var cssObj = { 
      position: source.css('position'), 
      top: source.css('top'), 
      left: source.css('left'), 
      height: source.css('height'), 
      width: source.css('width'), 
      border-top-width: source.css('border-top-width'), 
      border-top-width: source.css('border-top-style'), 
      border-top-width: source.css('border-top-color'), 
      border-bottom-width: source.css('border-bottom-width'), 
      border-bottom-width: source.css('border-bottom-style'), 
      border-bottom-width: source.css('border-bottom-color'), 
      border-left-width: source.css('border-left-width'), 
      border-left-width: source.css('border-left-style'), 
      border-left-width: source.css('border-left-color'), 
      border-right-width: source.css('border-right-width'), 
      border-right-width: source.css('border-right-style'), 
      border-right-width: source.css('border-right-color'), 
    }; 

    receiver.css(cssObj); 
} 

讨厌,你必须单独设置所有的边框属性,但是这是不言而喻的方式。关于创建一个像这样的对象然后在css()方法中应用它的好处是您只需调用一次该方法,因此您只需修改一次DOM。

1

这可能是短期内更多的工作,但根据我的经验,使用班级是这类工作的最佳长期解决方案。

不使用它们很麻烦。

1

考虑使用.clone函数。

$("div-selector").clone(); 

您可以立即将其定位到您想要的位置。例如

$("div-selector").clone().appendTo("where-you-want-it"); 

您可以选择将其填入变量中,也可以修改克隆的元素或其内容。