You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Uncaught TypeError:无法读取undefined的push属性问题求助

解决思路与方案

先修正语法错误

你代码里的jQuery选择器缺少引号,正确写法是$('#button'),这个小错误可能是全局声明时代码异常的诱因。

核心解决方案

要实现数组不重置且能多次添加值,关键是让数组的作用域可被点击事件访问,同时仅初始化一次。

方案1:用闭包隔离作用域(推荐)

把数组放在jQuery的ready闭包里,既避免全局变量污染,又能保证数组只初始化一次:

$(function() {
  let userValues = []; // 使用独特变量名,降低冲突概率
  
  $('#button').click(function(event) {
    userValues.push('你的目标值');
    console.log(userValues); // 可实时查看数组内容,验证效果
  });
});

方案2:明确全局变量(不推荐,易引发冲突)

如果必须使用全局变量,直接挂载到window对象上,防止被其他代码意外覆盖:

window.userValues = [];

$(function() {
  $('#button').click(function(event) {
    window.userValues.push('你的目标值');
    console.log(window.userValues);
  });
});

报错排查步骤

如果仍出现Cannot read properties of undefined (reading 'push'),按以下方向排查:

  • 在点击事件第一行添加console.log(你的数组变量名),查看变量实际值——大概率是被其他脚本改成了undefined或非数组类型。
  • 检查页面其他脚本,是否存在同名变量,比如其他地方也声明了array并赋值为undefined。
  • 确保所有jQuery代码都包裹在$(function(){})里,避免DOM未加载完成就执行事件绑定,导致事件无法触发(你局部声明时能运行,这个概率较低)。

内容的提问来源于stack exchange,提问作者foggy839_33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:50:35