循环内创建 Javascript 对象

标签 javascript jquery arrays json object

我一直在尝试在循环内创建对象。下面是我的代码。

<div class="container">
<div class="personDetails">
<input type="text" class="abc" id="Name1">
<input type="text" class="abc" id="Age1">
</div>
<br /><br />
<div class="personDetails">
<input type="text" class="abc" id="Name2">
<input type="text" class="abc" id="Age2">
</div>
<button onclick="getDetails()">Check Value</button>
</div>

下面是 javascript..

function getDetails(){
var myObj = {};
$('.personDetails').each(function(){
        $(this).children().each(function(){
myObj[$(this).attr('id')] = $(this).val();
            });
    });
console.log(myObj);
}

下面是它在控制台中的样子。但我不想把它全部变成一个对象。我想要的是每个人都应该在 .each 循环中创建每个对象。我知道我已经很接近了,但无法弄清楚我做错了什么。

Object {Name1: "cfr", Age1: "15", Name2: "fgatat", Age2: "25"}

我想做这样的

person1 {Name: "cfr", Age: "15"}, 
person2 {Name: "fgatat", Age: "25"}

最佳答案

以下是可能的解决方案之一:

function getDetails(){
  var myObj = [];
  $('.personDetails').each(function() {
        var person = {};
        $(this).children().each(function(){
            person[$(this).attr('id')] = $(this).val();
        });
        myObj.push(person)
    });
   console.log(myObj);
}

关于循环内创建 Javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43982100/

相关文章:

javascript - 在数据表中初始化(初始化完成)后禁用排序列

python - 为什么我的列表有额外的双括号?

Javascript:如何用逗号替换空格?

javascript - forEach inside Ticker 使 Canvas 变慢

javascript - 获取 DIV ID 然后更改 href 值

c - 无法正确计算数组中删除操作的时间复杂度?

javascript - 如果输入数组值是整数类型,为什么angularjs(ng-repeat)允许在第一次添加重复记录

javascript - 调用 javascript 函数时无法读取 $_POST 数据

javascript - 我如何强制浏览器获取新的 JavaScript (JS) 文件?在 html 中使用脚本标签

javascript - 获取选中的单选按钮的值