Jquery克隆元素样式

时间:2015-07-14 20:51:10

标签: javascript jquery

我正在尝试克隆div style="background-color:<?php echo $mg ?>;"

的特定部分

所以我想要发生的是当我点击一个特定按钮时它只克隆div的样式部分。

目前我收到此错误Uncaught TypeError: $(...).attr(...).clone is not a function

以下是我目前所拥有的一个例子:

$(function() {
  $(".mapei-grout-color").click(function() {
    $(this).attr('style').clone(true, true).appendTo('#the-grid');
    var $this = $(".grout-tab");
    if ($this.hasClass("clicked-once")) {
      $this.removeClass("clicked-once");
      $(".mapei").slideUp();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

3 个答案:

答案 0 :(得分:1)

您可以简单地使用Jquery:.attr()函数来获取特定属性。

例如:

$('div').attr('style')

检查this JSFiddle以查看实时示例

修改

要将其用于克隆,您可以执行以下操作:

$(this).clone().attr('style', $(this).attr('style')).appendTo('#the-grid');

有关实例,请参阅this JSFiddle

答案 1 :(得分:1)

如果我理解你的问题,当你点击一个按钮时,它会采用该按钮的样式并将其克隆到另一个按钮。

$('#style').on('click',function(){
     document.getElementById('clone').setAttribute('style',this.getAttribute('style'));

}); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button style="background-color:blue" id="style">Click Here</button>
<button  id="clone">Clone</button>

答案 2 :(得分:0)

回答你在这里的评论,我想我完全忽视了你的需求。

http://jsbin.com/gezafilado/edit?html,output

clone(true)将复制样式属性以及节点的所有其他道具。

您在代码中执行了错误的操作 - .attr(&#39; style&#39;)返回字符串,而不是元素。 我想你想将克隆节点附加到网格中。

所以,而不是:

$(this).attr('style').clone(true, true).appendTo('#the-grid');

你需要这个:

$(this).clone(true).appendTo('#the-grid').attr("style", "Your new styles here");

或者如果要将原始对象的样式与新对象合并:

var $elem = $(this).clone(true).appendTo('#the-grid');
var style = $elem.attr("style") + "Your new styles here";
$elem.attr("style", style);

希望这有帮助,我知道了。