-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 メソッドに渡す必要があります。'{...}'これは文字列です。このように、メソッドをセッターではなくゲッターとして使用すると、jQuery は要求されたプロパティ (文字列)の値css見つけて返そうとします。'{...}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

私はテストしていませんが、これを試してください

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')に変更したことを確認してください。これは、ページのすべての div ( div#tagetを含む) ではなく、1 つの div からスタイルを取得する必要があるためです。

于 2013-08-06T14:05:21.207 に答える
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 に答える