javascript - 如何向数据属性添加更多对象或数组

标签 javascript jquery

我有一个带有预设数据属性 data-data='{"type":"animal","items":"20"}' 的 div 标签,由函数 A 处理( )。基于用户事件,应该使用函数 B() 将更多内容添加到数据属性,然后最终使用函数 A() 进行处理

<div id="getInfo" data-data='{"type":"animal","items":"20"}'></div>
function A() {
   var data = $('#getInfo').data('data');
   //send data to server
}
function B() {
   var long_lat = user_location_data();
   $('#getInfo').data('data');// add long_lat
}

数据属性中的信息将被发送到服务器 -> 查询数据库,如果用户允许我们获取他们的位置,用户位置将被添加到数据属性中,即 data-data='{"type":"animal ","items":"20","long":"2.35640","lat":"0.35341"}' 然后将被处理,发送到服务器。

最佳答案

您可以通过执行以下操作向数据属性添加更多数据:

$(document).ready(() => {
  var data = $('#getInfo').data('data');
  $('#getInfo').data('data', Object.assign(data, {
   long: 2.35640,
   lat: 0.35341
  }));
  
  console.log('newData', $('#getInfo').data('data'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="getInfo" data-data='{"type":"animal","items":"20"}'></div>

关于javascript - 如何向数据属性添加更多对象或数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54581676/

相关文章:

javascript - Angular Google Recaptcha,第 2 列出现意外标记

javascript - 加载数据后从 Select2 获取项目

javascript - VueJS 路由器 : $route is not defined

javascript - 你能在 Angular 中从一个作用域访问另一个作用域的变量吗

jquery - Highcharts 问题

javascript - 正确解码 Get Blob 数据字符串到 ArrayBuffer

vb.net - 使用 jQuery Post 从 .ashx 获取文件

javascript - 模拟宽度 : calc(100%) - with jQuery not working

javascript - 在鼠标悬停在下一个元素上时隐藏事件 div

javascript - 如何向 javascript 对象的每个子数组添加一对新的 (key,value)?