jquery - 将css从一个元素传递到另一个元素

时间:2011-07-06 09:19:04

标签: jquery css

我想知道是否有可能替换让我们说一个带有跨度的div(我可以做)但是将所有声明的css从该元素传递给新的?

的问候,

3 个答案:

答案 0 :(得分:3)

如果你添加了class,id和style属性,它应该没问题。

var div = $('yourdivid');
var span = $('<span>',{
        id:div.attr('id'),
        html:div.html(), 
        class:div.attr('class'), 
        style:div.attr('style')
    });
div.replaceWith(span);

演示http://jsfiddle.net/gaby/KQdGX/


请注意,通过CSS规则应用的定位标记div的样式将无法再现..

答案 1 :(得分:0)

为什么不使用DOM元素的.style?它是一个包含width和backgroundColor等成员的对象。

document.getElementById("id").style.property="value"

或者使用此代码 由Dakota

制作

警告:此代码会产生大量输出,应谨慎使用。它不仅复制所有标准CSS属性,还复制该浏览器的所有供应商CSS属性。

jquery.getStyleObject.js:

/*
 * getStyleObject Plugin for jQuery JavaScript Library
 * From: http://upshots.org/?p=112
 *
 * Copyright: Unknown, see source link
 * Plugin version by Dakota Schneider (http://hackthetruth.org)
 */

(function($){
    $.fn.getStyleObject = function(){
        var dom = this.get(0);
        var style;
        var returns = {};
        if(window.getComputedStyle){
            var camelize = function(a,b){
                return b.toUpperCase();
            }
            style = window.getComputedStyle(dom, null);
            for(var i=0;i<style.length;i++){
                var prop = style[i];
                var camel = prop.replace(/\-([a-z])/, camelize);
                var val = style.getPropertyValue(prop);
                returns[camel] = val;
            }
            return returns;
        }
        if(dom.currentStyle){
            style = dom.currentStyle;
            for(var prop in style){
                returns[prop] = style[prop];
            }
            return returns;
        }
        return this.css();
    }
})(jQuery);

基本用法非常简单:

var style = $("#original").getStyleObject; // copy all computed CSS properties
$("#original").clone() // clone the object
    .parent() // select it's parent
    .appendTo() // append the cloned object to the parent, after the original
                // (though this could really be anywhere and ought to be somewhere
                // else to show that the styles aren't just inherited again
    .css(style); // apply cloned styles

答案 2 :(得分:0)

我有同样的问题,我调整了n得到了这个工作: document.getElementById("destinationid").style.height = document.getElementById('sourceid').offsetHeight+"px"