У меня есть список pax в моем HTML. Мне нужно создать объект, содержащий тип pax и их счет. например: {adult:3, child:2}
скрипка
var obj='{';
$('.pax').find('div').each(function(i,val){
var pax= $(this).text();
obj+= $(this).text();
obj+=':';
obj+=i;
obj+=','
})
obj+="}"
console.log(OBJ)
Пытаться
var obj = {};
$('.pax').find('div').each(function (i, val) {
var pax = $.trim($(this).text());
obj[pax] = (obj[pax] || 0) + 1;
})
Демо: скрипка
Затем используйте JSON.stringify(), если вы хотите, чтобы строковое представление значения
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);
});
Если вам не нужны индексы, но счетчик для каждого типа, см. Этот ответ.
Если вам нужна строка JSON в конце, используйте JSON.stringify(obj)
.