2012-03-16 23 views
1

テーブルを使ってjQueryを使ってDjangoを使っています。javascript - 辞書を作成する際の簡単な算術

$("#pending_table").tablesorter({ 
    headers: {5 + {{somevariable}}: {sorter:false},6 + {{somevariable}}: {sorter:false}} 
}); 

(私は無関係な他のオプションの束を省略)

トラブルを引き起こしている部分は、ヘッダー辞書の定義で追加された:私は、次のJavaScriptを持っています。結果のWebページのソースを見ると、{{somevariable}}が値4に正しく変換されていることがわかります。したがって、これはDjango関連の問題ではありません。

要約:「5 + 4:value」が機能せず、「9:value」が機能します。

私はjavascriptの構文をどうにかしていると仮定しています。

ヘルプ?

答えて

3

Javascriptオブジェクトリテラルでは、リテラルをキーとしてのみ使用できます。つまり、計算式をキーとして持つことはできません。たとえば、これは許可されていないです、あなたはその制限回避するために、これを行うことができた

headers = { 
    (1 + 2): 4 
} 

:あなたのケースでは

headers = {}; 
headers[1 + 2] = 4; 

を、それはあなたがこのような何かをしたいのようになります。

var headers = {}; 
headers[5 + someVar] = {sorter: false}; 
headers[6 + someVar] = {sorter: false}; 
$("#pending_table").tablesorter({  
    headers: headers 
});  
+1

JavaScriptオブジェクトリテラルでJSON文字列を誤解していませんか?あなたが言及しているJSONは、データ交換フォーマット([RFC here](http://tools.ietf.org/html/rfc4627))ですが、質問はJavaScriptのオブジェクトリテラルに関するものです。 – Tadeck

+0

JSONは "Javascript Object Notation"の略語なので、私はいつもそのことについて混乱しています。そのため、Javascriptでオブジェクトを宣言するために使用する表記法に対応していると仮定しました。私は使用すべき別の略語はありますか?とにかく、私は答えを編集しました。 –

+0

私はこれを頭字語にするのは難しいと信じています。これはJavaScriptのオブジェクトのリテラルです。まだ混乱している場合は、JavaScriptのオブジェクトリテラルとJSON表記法の違いについての説明を読むことができます:[Mozilla Developer Network:JSON](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/ JSON)。 – Tadeck

関連する問題