javascript - javascript中的动态值到对象中

标签 javascript jquery arrays html object

我有以下具有更多值的代码,仅显示 3 个以供您引用

var people = {
    'Jon':{
        age:65,
        height:185,
        marriage:true
    },
    'Mary':{
        age:18,
        height:170,
        marriage:false
    },
    'Carol':{
        age:45,
        height:165,
        marriage:true
    }
};

因为现在我从服务器动态获取所有值,所以我想复制该对象以从 <a> 获取动态值。标签而不是列出上面的所有内容。

<a data-name='${person.name}' data-age="${person.age}" data-height="${person.height}" data-marriage="${person.isMarried}" href='/#'>

<script>
    var personName = $('a').data('name');
    var personAge = $('a').data('age');
    var personHeight = $('a').data('height');
    var isMarried = $('a').data('marriage');
</script>

我正在尝试这样的事情,但它似乎不起作用,我是否需要创建一个循环,不太确定

var people = {
    personName:{
        age:personAge,
        height:personHeight,
        marriage:isMarried
    }
};

任何帮助将不胜感激

谢谢

最佳答案

是的。您将需要一个循环(或等效项)。这是一个简单的工作方法。

var people = {};

$('a').each(function(){
  var a = $(this);
  people[a.data('name')] = {
    age: a.data('age'),
    height: a.data('height'),
    marriage: a.data('marriage')
  }
});
            
document.body.innerHTML += JSON.stringify(people, null, 2);
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<a data-name='Jon' data-age="65" data-height="185" data-marriage="true" href='/#'></a>
<a data-name='Mary' data-age="age" data-height="170" data-marriage="false" href='/#'></a>
<a data-name='Carol' data-age="45" data-height="165" data-marriage="true" href='/#'></a>

关于javascript - javascript中的动态值到对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33916997/

相关文章:

javascript - 使用 $.getJSON 获取 url 并正确解析它

javascript - 字符串同时包含 ' & "

javascript - 无法让 JQuery 显示工作

arrays - 查询对象与数组

javascript - 数学轮函数

javascript - ng-class 中表达式的语法错误?

javascript - jquery如何获取选中的选项id

jquery - 如何使用 Bootstrap 4.3 在 Popover 中包含表单?

java - 将动态数组拆分为多个数组

javascript - 在 a 中为每个对象创建对象及其对象属性