javascript - 变量在 else 语句中未定义
问题描述
我对为什么我的代码中出现“未定义”错误感到困惑。我正在尝试使用“id”变量从数组中删除一个 id,但它会因“未定义”而出错。我尝试了各种移动“var id;”的选项 但我仍然得到错误。我已经在代码中标记了发生错误的位置,如果有人可以帮助我纠正这个错误,我将不胜感激。非常感谢
$(function() {
info = [];
$(document).on('click', '.rowChk', function() {
var id;
if (this.checked) {
$('#rowClk').show();
var currentRows = $(this).closest("tr");
var rackid = currentRows.find("td:eq(0)").text();
// var rackidnumber = currentRows.find("td:eq(1)").html();
var rackservice = currentRows.find("td:eq(2)").html();
var rackactivity = currentRows.find("td:eq(3)").html();
var rackdept = currentRows.find("td:eq(4)").html();
var rackcompany = currentRows.find("td:eq(5)").html();
var rackaddress = currentRows.find("td:eq(6)").html();
var rackuser = currentRows.find("td:eq(7)").html();
var rackitem = currentRows.find("td:eq(8)").html();
var rackddate = currentRows.find("td:eq(9)").html();
var rackdate = currentRows.find("td:eq(10)").html();
id = rackid;
data = {};
data.rackids = id;
// data.idnumber = rackidnumber;
data.service = rackservice;
data.activity = rackactivity;
data.dept = rackdept;
data.company = rackcompany;
data.address = rackaddress;
data.user = rackuser;
data.item = rackitem;
data.intakedate = rackdate;
data.destroydate = rackddate;
info.push(data);
} else {
console.log(id); <--- Showing as undefined
var index = info.findIndex(function(item) {
return item.id === id;
});
if (index !== -1) {
info.splice(index, 1);
if (info.length === 0) {
$('#rowClk').css('display', 'none');
}
}
}
});
});
解决方案
您的变量id
尚未在else
通量中定义。为了帮助你理解,elseflux相当于:
$(function() {
info = [];
$(document).on('click', '.rowChk', function() {
var id;
if (this.checked) {
} else {
console.log(id); <--- Showing as undefined
var index = info.findIndex(function(item) {
return item.id === id;
});
if (index !== -1) {
info.splice(index, 1);
if (info.length === 0) {
$('#rowClk').css('display', 'none');
}
}
}
});
});
推荐阅读
- ios - ImageView 在 UITableViewCell 中坚持使用 UILabel
- python-3.x - pandas DataFrame(python)中的Z分数标准化
- angular - 如何为多个延迟加载的模块注册共享的 NgRx 效果,而无需在应用程序根目录注册?
- linux - Ansible become_user useradd 问题
- shell - 仅排除 tar 命令中的特定文件夹
- c++ - 将流打印到自身的目的可能是什么?
- captiveportal - 在 Ruckus ZoneDirectory ZD3050 上使用 HotSpot 服务的外部强制门户
- laravel - Laravel Nova 从另一个字段引用字段值
- optaplanner - Optaplanner 没有看到我的计划变量
- html - Spring Boot 2 - 本地 css 文件未用于索引页面