6

css()関数に文字列リテラル/文字列定数を使用する代わりに、jQuery css()関数を使用してdiv要素のcssを動的に設定したいと思います。出来ますか?

文字列リテラルで次のコードを使用する代わりに:

$('#myDiv').css('color', '#00ff00');

変数を使用して、次のような#myDiv要素のcssを設定したいと思います。

バージョン1:

var propertyName = get_propery_name(myVariable1); // function get_propery_name() returns a string like 'background-color'
var value = get_value(myVariable2) ; //  function get_value() returns a string like '#00ff00'
$('#myDiv').css(propertyName, value);

バージョン2:(上記のバージョン1のようなカスタム関数を呼び出さずに機能するかどうかを確認するためにハードコーディングされています):

var propertyName = 'background-color';
var value = '#00ff00';
$('#divLeftReportView').css(propertyName, value);

コードの両方の可変バージョンは機能しません。助けてください。ありがとう。

4

5 に答える 5

1

ここに投稿したコードは機能するはずです。あなたがやろうとしていることの両方のバージョンを数回実行しました。うまくいかない場合は、javascript のどこかで何かが間違っているか、変更したい要素の正しいセレクター/ID を持っていない可能性が高いです。

alert("test");の直後に追加してみてください$('#divLeftReportView').css(propertyName, value);。「テスト」というポップアップが表示された場合、問題はセレクタにあります。そうでない場合、問題は JavaScript のバグです。

$('#divLeftReportView').css("background-color", "#00ff00");また、同じ場所に追加してみてください。これにより、セレクターが機能しているかどうかが確認されます。

于 2012-05-16T14:07:59.743 に答える
1

http://jsfiddle.net/gaby/6wHtW/で正常に動作するようです

DOM Ready イベントの後に必ずコードを実行してください。

$(function(){
    var propertyName = 'background-color';
    var value = '#00ff00';
    $('#divLeftReportView').css(propertyName, value);
});

そうしないと、要素が DOM に存在しない可能性があります。

于 2012-05-16T14:08:23.590 に答える