我的HTML中有pax列表。我需要创建一个包含pax类型及其计数的对象。例如:{adult:3, child:2}
fiddle
var obj='{';
$('.pax').find('div').each(function(i,val){
var pax= $(this).text();
obj+= $(this).text();
obj+=':';
obj+=i;
obj+=','
})
obj+="}"
的console.log(OBJ)
答案 0 :(得分:5)
var obj = {};
$('.pax div').each(function(i) {
var pax = $(this).text();
obj[pax] = i;
});
但是,对于您当前的标记,这没有任何意义 - 除非您存储数组,否则对象不能具有相同键的多个值:
var obj = {};
$('.pax div').each(function(i) {
var pax = $(this).text();
if (!(pax in obj)) {
obj[pax] = [];
}
obj[pax].push(i);
});
如果您不需要索引但需要每种类型的计数,请参阅this answer instead。
如果最后需要JSON字符串,请使用JSON.stringify(obj)
。
答案 1 :(得分:3)
尝试
var obj = {};
$('.pax').find('div').each(function (i, val) {
var pax = $.trim($(this).text());
obj[pax] = (obj[pax] || 0) + 1;
})
演示:Fiddle
如果您想要值
的字符串表示,请使用JSON.stringify()