jQuery将CSS属性从一个元素扩展/继承到另一个元素的最有效方法是什么?
$('#blah').extendCSSTo('#me') // Is there a plugin or a good way to do this?
$('#me').css({ background: 'blue' });
#me
现在拥有#blah
和background
CSS:
#blah {
padding: 5px;
width: 200px;
height: 20px;
border: 1px solid #333;
font-family: "Verdana";
}
#me {
position: absolute;
left: 5px;
top: 5px;
}
<div id="blah"></div>
<div id="me">test</div>
编辑:这将在插件中使用,因此使用类只是执行.addClass
不是一个选项
我正在寻找与为插件选项设置默认值相同的效果,而是寻找CSS:
$.extend([css object], [#blah css object], [#me css object])
答案 0 :(得分:2)
$('#me').addClass('class');
这可行,但不确定您是否可以使用相对于ID的CSS。
答案 1 :(得分:1)
试试这个。
function CloneStyle(sourceID, targetID){
var myStyle;
var source = document.getElementById(sourceID);
var target = document.getElementById(targetID);
if (window.getComputedStyle) {
myStyle = window.getComputedStyle(source).cssText;
}
else if (source.currentStyle) {
myStyle = $.extend(true, {}, source.currentStyle);
} else {
throw "antique browser!";
}
target.style.cssText = myStyle;
}
现在打电话给。
CloneStyle("blah", "me");
$('#me').css({ background: 'blue' });
答案 2 :(得分:0)
如果您要使用CSS类而不是ID引用,则可以执行以下操作:
$("#me").addClass($("#blah").attr("class"));
将这些类从#blah
复制到#me