-4
var csn = ['font-family', 'font-size', 'font-weight', 'color', 'text-decoration', 'text-shadow', 'background-color'];

$.each(csn, function (n, value) {
    style.push("'" + value + "':'" + $('div').css(value) + "'");
});

var msg = "{" + style.join(',') + "}";

$('div#taget').css(msg);
4

4 回答 4

2

您应该将一个对象传递给 css 方法。'{...}'这是一个字符串。这样,您将该css方法用作 getter 而不是 setter,jQuery 会尝试查找并返回所请求属性的值('{...}“字符串”),这当然是undefined.

于 2013-08-06T14:05:40.710 回答
1

更正:

// use camelCased properties
var props = ['fontFamily', 'fontSize', 'fontWeight', 'color', 'textDecoration', 'textShadow', 'backgroundColor'];

//create a dump object
var dump = {};

//iterate through properties and populate the dump object
for(var i = 0, l = props.length, prop; prop = props[i]; i++)
    dump[prop] = $('div').css(prop);
});

//apply
$('div#taget').css(dump);

您应该阅读过文档,您可以在其中看到一些工作示例。此外,你看起来缺乏 javascript、对象等方面的基础知识,所以我建议你访问这个地方

于 2013-08-06T14:09:20.680 回答
0

@嘿,

更改了您的代码FIDDLE DEMO中的一些内容

这是查看 div 来源时的结果。

<div id="taget" style="font-family:'Times New Roman',font-size:16px,font-weight:400,color:rgb(0, 0, 0),text-decoration:none,text-shadow:none,background-color:rgba(0, 0, 0, 0)">content heer</div>
于 2013-08-06T14:12:00.457 回答
0

我没有测试,但是,试试这个

var csn = ['font-family', 'font-size', 'font-weight', 'color', 'text-decoration', 'text-shadow', 'background-color'];

$.each(csn, function (n, value) {
    $('div#taget').css(value, $('div#source').css(value));
});

看我将$('div')更改为$('div#source'),因为您只想从 1 个 div 而不是页面的所有 div 中获取样式(包括div#taget);

于 2013-08-06T14:05:21.207 回答