是否可以使用 jquery/javascript 从这个序列中制作字典?
核心价值
<div id="hidden_loaded_deals">
<div>1:5</div>
<div>2:5</div>
</div>
我试过这个:
$('#hidden_loaded_deals > div').text()
结果是:
"1:52:5"
它放松了字符串之间的分隔,以便稍后将它们推送到字典中。有开箱即用的功能吗?
是否可以使用 jquery/javascript 从这个序列中制作字典?
核心价值
<div id="hidden_loaded_deals">
<div>1:5</div>
<div>2:5</div>
</div>
我试过这个:
$('#hidden_loaded_deals > div').text()
结果是:
"1:52:5"
它放松了字符串之间的分隔,以便稍后将它们推送到字典中。有开箱即用的功能吗?
试试这个将文本值转换为数组:
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']
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];
}
这可以工作。遍历每个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"}