将div序列加载到字典中?

时间:2012-07-22 16:29:42

标签: javascript jquery

是否可以使用jquery / javascript从这个序列中创建一个字典?

  

键:值

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

我试过了:

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

结果是:

"1:52:5"

它会松开字符串之间的分隔,以便稍后将它们推入字典中。 是否有开箱即用的功能?

3 个答案:

答案 0 :(得分: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']

答案 1 :(得分:1)

Koolnic的答案非常好,但我建议使用object literal作为键值存储。然后,您可以使用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];
}

答案 2 :(得分: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"}