如何使用javascript制作匹配元素的对象

时间:2013-12-21 15:54:36

标签: javascript jquery

我的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)

2 个答案:

答案 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()