HTML
<div class="row">
<div class="col-xs-5 stateName">Kuala Lumpur</div>
<div class="col-xs-7"><input id="1" placeholder="0.00" type="text"/></div>
</div>
<div class="row">
<div class="col-xs-5 stateName">Kuala Kangsar</div>
<div class="col-xs-7"><input id="2" placeholder="0.00" type="text"/></div>
</div>
MY 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
,知道我的循环中有什么问题吗?当我将对象推入循环中的数组时,我以为我做了正确的循环?
答案 0 :(得分:4)
在循环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);
<强> Demo 强>
答案 1 :(得分:1)
只有jQuery的另一种方式
my $num;
if (defined($num) && $num ne "" && $num ne "0")
{
# do something
}
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);