我正在尝试克隆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>
答案 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);
希望这有帮助,我知道了。