2

私は解決できないように見えるかなり奇妙な問題に遭遇しています。.css() で変数を使用しようとしていますが、機能しません。ただし、「背景色」を .css() 呼び出し内に直接入力すると、それは実行されます。何を与える?

var css = that.data('css');
var targets = that.data('targets');
var value = that.val();
console.log(css + ' ' + targets + ' ' + value);
console.log(css === 'background-color');
    // returns true

$(targets).css({
    css: value
});
// Doesn't work!

$(targets).css({
    'background-color': value
});
// Works ok!
4

3 に答える 3

4

オブジェクトリテラルのキーとして変数を使用することはできません。最初にオブジェクトを作成してから、角かっこ表記を使用してプロパティを追加してください

    var obj = {};
    obj[css] = value;
    $(targets).css(obj);

または単に

    $(targets).css(css, value);
于 2012-11-22T23:43:35.613 に答える
2

オブジェクトリテラルの識別子として変数を使用することはできません。を使用{ css: value }すると、という名前のプロパティを持つオブジェクトが作成されますがcss、変数は使用されませんcss

オブジェクトを作成し、プロパティを設定します。

var o = {};
o[css] = value;
$(target).css(o);
于 2012-11-22T23:44:41.520 に答える