1

jquery/javascript を使用して、このシーケンスから辞書を作成することは可能ですか?

キー:値

<div id="hidden_loaded_deals">
  <div>1:5</div>
  <div>2:5</div>
</div>

私はこれを試しました:

$('#hidden_loaded_deals > div').text()

結果は次のとおりです。

"1:52:5"

後で辞書にプッシュするために、文字列間の分離を緩めます。それを行うためのすぐに使える機能はありますか?

4

3 に答える 3

3

テキスト値を配列に変換するには、これを試してください。

var x = $.makeArray($('#hidden_loaded_deals > div'))
         .map(function(a){return $(a).text();});
//=> x = ['1:5','2:5']

またはより保守的:

var tmpdict = [];
$('#hidden_loaded_deals > div').each(
    function(){
        tmpdict.push($(this).text());
    }
);
//=> tmpdict = ['1:5','2:5']
于 2012-07-22T16:39:07.053 に答える
1

Koolnicの答えは非常に良いですが、キー値ストアとしてオブジェクトリテラルを使用することをお勧めします。次に、for in構文を使用してキーをループできます。

var tmpdict = {};
$('#hidden_loaded_deals > div').each(
    function(){
        var splitted = $(this).text().split(':');
        tmpdict[splitted[0]] = splitted[1];
    }
);

for(var key in tmpdict)
{
    var value = tmpdict[key];
}
于 2012-07-22T18:24:01.090 に答える
0

これはうまくいくかもしれません。各 を反復処理しdiv、そのテキストを解析して、オブジェクト (「辞書」) を更新します。

var x = {};
$('#hidden_loaded_deals > div').each(function(index, elem) {
    var l = elem.innerText.split(':');
    x[l[0]] = l[1];
});
console.log(x); // x is {"1": "5", "2": "5"}
于 2012-07-22T16:43:14.340 に答える