热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TypeError:无法设置undefined的属性'data_id'

如何解决《TypeError:无法设置undefined的属性'data_id'》经验,为你挑选了1个好方法。

我的js代码存在一些问题,我不知道如何修复它这是我的代码:

  $('#btn_valid').click(function(){

    var data = new Array();
    var data_id;
    var data_picture;
    var data_title;
    var data_p_picture;
    var data_p_title;
    var data_s_picture;
    var data_s_title;
    var data_reaction;
    var data_datetime;
    var i = 0;


    $('.cbx_ac:checked').each(function(){

      data_id = $(this).attr('data-id');
      data_picture = $(this).attr('data-picture');
      data_title= $(this).attr('data-title');
      data_p_picture = $(this).attr('data-p_picture');
      data_p_title = $(this).attr('data-p_title');
      data_s_picture = $(this).attr('data-s_picture');
      data_s_title = $(this).attr('data-s_title');
      data_reaction = $(this).attr('data-reaction');
      data_datetime = $(this).attr('data-datetime');

      console.log(data_id); // I Get a value here ( 2564115647_15498456665 )

      data[i]['data_id'] = data_id;  //Error here :  Uncaught TypeError: Cannot set property 'data_id' of undefined
      i++;

    })
    console.log(data);
  })

我得到这个错误我尝试设置数据[i] = []但似乎不是解决方案:

Error here :  Uncaught TypeError: Cannot set property 'data_id' of undefined

Rory McCross.. 5

这个问题是因为data[i]undefined.因此,您尝试设置属性undefined,因此设置错误.

要解决此问题,您需要先创建一个对象data[i],如下所示:

data[i] = {};
data[i]['data_id'] = data_id;
// and so on...

值得注意的是,您可以大规模简化此逻辑并将其干掉.当您访问data()元素的方法时,它将返回对象中的所有属性.因此,只要属性名称与您要创建的对象的属性名称匹配,您就可以使用map()以下命令将其应用于数组:

$('#btn_valid').click(function() {
  var data = $('.cbx_ac:checked').map(function() {
    return $(this).data();
  }).get();
  console.log(data);
})







请注意,上面的示例缺少dataHTML中的一些属性,但这只是为了简洁起见.您可以在生产版本中轻松添加它们.



1> Rory McCross..:

这个问题是因为data[i]undefined.因此,您尝试设置属性undefined,因此设置错误.

要解决此问题,您需要先创建一个对象data[i],如下所示:

data[i] = {};
data[i]['data_id'] = data_id;
// and so on...

值得注意的是,您可以大规模简化此逻辑并将其干掉.当您访问data()元素的方法时,它将返回对象中的所有属性.因此,只要属性名称与您要创建的对象的属性名称匹配,您就可以使用map()以下命令将其应用于数组:

$('#btn_valid').click(function() {
  var data = $('.cbx_ac:checked').map(function() {
    return $(this).data();
  }).get();
  console.log(data);
})








推荐阅读
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 在JavaScript中,函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最后一个有效。如果调用函数时传入的参数个数与函数定义时的参数个数不符,会出现不同的情况。函数调用时,传入的参数个数少于函数定义时的参数个数,未传入的参数会被当做undefined处理,可能会导致错误。而传入的参数个数多于函数定义时的参数个数,多余的参数不会被使用,但不会报错。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • JS实现一键分享功能
    本文介绍了如何使用JS实现一键分享功能,并提供了2019独角兽企业招聘Python工程师的标准。同时,给出了分享到QQ空间、新浪微博和人人网的链接。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路
    本文介绍了FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路。当图表系列较多时,用户希望可以自己设置哪些系列显示,哪些系列不显示。通过调用FR.Chart.WebUtils.getChart("chartID").getChartWithIndex(chartIndex).setSeriesVisible()接口,可以获取需要显示的系列图表对象,并在表单中显示这些系列。本文以决策报表为例,详细介绍了实现方法,并给出了示例。 ... [详细]
author-avatar
my76572
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有