循环并将对象推入数组

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