2011-01-12 3 views
2

これはなぜ動作していないのですか?角かっこを使用してJavascriptで物を連結しますか?

$('#screen').css({ 
    'background-image': [bg_num == 1 ? 'josh' : 'jessi'] + '_background.jpg', 
    'background-color': 'red' 
}); 

背景色は設定されていますが、画像は設定されていません。

私は実際にこの種のことをするためにJavascriptで大括弧を使って練習していませんでした。私が何か間違ったことをしているなら誰でもヒントを持っていますか?彼らの使い方についての素敵な説明はありませんか?

編集:私がconsole.log()で同じことをしても「josh_background.jpg」という出力が得られるので、チェック自体は実際には起こっています。それはちょうどこのCSSの設定機能を取っていない。

+1

私は混乱している、それはあなたがブラケット(:彼らは括弧と同等ではありませんヒント)JavaScriptで何を意味するかと思いますか? –

答えて

6

EDIT:

あなたはそれに'_background.jpg'を連結、値'josh'または'jessi'と配列リテラルを作成していたので、それは技術的に働くだろうが何をしていました。

background-image値の一部である'url()'が欠落しているという問題があります。

'background-image': 'url(' + (bg_num == 1 ? 'josh' : 'jessi') + '_background.jpg)', 

...しかし、あなたはまだグループ化の代わりに、アレイを構築するため()を使用する必要があります。


オリジナルの答え:角括弧の代わりにグループ化するための

使用括弧:

'background-image': (bg_num == 1 ? 'josh' : 'jessi') + '_background.jpg', 

JavaScriptで角括弧のためにあなたが持っているだろう唯一の使用は取得/設定になりますオブジェクト上のプロパティ、またはArrayリテラルを作成するための配列:

var arr = []; // An Array literal 

arr[10] = 'someArrValue'; // set index 10 


var obj = {}; // A plain object literal 

obj['prop'] = 'someObjValue'; // set the "prop" property 

var key = 'prop2'; 

obj[key] = 'someOtherObjValue'; // set the property referenced in the "key" variable 

...ああ、彼らはもちろんの正規表現の構文で使用してい...

+1

'['jessi'、 'josh'] [bg_num] + '_background.jpg''もうまくいくかもしれません:-) – Pointy

+0

@Pointy:真です。猫の皮膚に複数の方法。 :o) – user113716

+0

実際に取るべき背景の変更をまだ得ることができません。 –

関連する問題