2

私はオブジェクトを持っていますoptionsoptions = {title : 'title1', name : 'name1', url : 'url1', etc.}

これは、パラメーターとして関数に渡されます。そのオブジェクトを反復処理し、別の関数に渡してevaluate、結果を別のオブジェクトに格納しようとしています。たとえばopts、次のようになります。

var opts = new Object();

$.each(options, function(key,value){
opts.key = evaluate(element, value);
});

evaluate(element,value)正常に動作しますが、問題は次のようになってしまうoptsことです。

{key : eval(element,url1)}

それ以外の

{title : eval(element,title1), name : eval(element,name1), etc.}

つまり、key評価される代わりに文字通り渡され、の最後のプロパティで反復ごとに上書きされますoptions

割り当て行に正しい構文がありますか?私も試しました:

opts = {key : eval(element,val)}

上記と同じ結果が得られました。$.each反復内でオブジェクトを配列に変換することもできます。私はそれを行ういくつかの方法を試しましたが、失敗しました。誰かがそのルートを教えてくれれば、それも素晴らしいことです。

(これはjQueryプラグイン用であり、FirefoxでFirebugを使用してテストしています)。

よろしくお願いします。

4

1 に答える 1

8

あなたが発見したように、これは文字通りのキー'キー'です:

opts.key = evaluate(element, value);

動的キーを使用するには、次を使用し[]ます。

opts[key] = evaluate(element, value);

具体例:

var o = {};
o["test"] = "foo";
alert(o.test);
于 2009-12-13T20:02:36.990 に答える