循环并将对象推入数组
HTML
Kuala Lumpur Kuala Kangsar
我的JS
var stateArr = [], tempObj = {}; $('.stateName').each(function(){ tempObj.id = $(this).next('div').find('input').attr('id'); tempObj.name = $(this).text(); stateArr.push(tempObj); }); console.log(stateArr)
我的结果都是Kuala Kangsar
,我知道我的循环中有什么问题吗? 当我将对象推入循环中的数组时,我以为我做了正确的循环?
在循环中声明对象tempObj={}
var stateArr = []; $('.stateName').each(function(){ var tempObj = {}; // declare obj inside loop tempObj['id'] = $(this).next('div').find('input').attr('id'); tempObj['name'] = $(this).text(); stateArr.push(tempObj); }); console.log(stateArr);
演示
另一种只有jQuery的方式
var arr = $('.stateName').map(function(index, el){ return { id : $(this).next('div').find('input').attr('id'), name : $(this).text() }; }).toArray(); console.log(arr); document.getElementById('res').innerHTML = JSON.stringify(arr);
Kuala Lumpur Kuala Kangsar