对象数组未显示所有变量
object array not showing all variables
我的代码如下所示。我的问题是:console.log(obj)
部分说的是Object {InternalNumber = 22 }
,而忽略了所有其他变量。我期待它说:
Object { Id = someID, ParameterId="someParaId", InternalNumber = someNr, value="someValue"}
可能出了什么问题?
如果你没有注意到。。。我正在将对象保存到localStorage,然后从那里检索它。
function getModel() {
var model = {
Id: '',
ParameterId: '',
InternalNumber: '',
Value: ''
}
return model;
}
function saveObjectToLocal() {
model = getModel();
model.Id = $(this).find(':input[name$=Id]').val();
model.ParameterId = $(this).attr('id');
model.InternalNumber = currentParcel.children('#viewModel_InternalNumber').val();
model.Value = $(this).find(':input[name$=Value]').val();
localStorage.setItem("model", JSON.stringify(model));
}
function getObjectFromLocalAndInsertInFields() {
obj = JSON.parse(localStorage.getItem("model"));
console.log(obj);
}
如何调用saveObjectToLocal
函数$该函数内部的(this)可能与任何内容都不匹配,因为"this"可能是全局(窗口)对象,而DOM元素在窗口对象中不匹配。
看看我在说什么。运行:
$(this);
$(this).find("input");
$(this).find("input").attr("id");
从您的控制台。第一个输出的长度仅为window的1,第二个输出为空jQuery对象,第三个输出未定义。
在空jQuery列表上调用.val()和.attr将是未定义的,因此不会序列化为JSON。InternalNumber已序列化,因为currentParcel.children正在提供匹配项。您需要修复$(this)选择器。
相关文章:
- 节点.js将变量显示为 HTML
- 使用eval()定义变量显示未定义的错误
- 将Flask中的变量显示为javascript代码时出错
- 为什么我的 ajaxurl 变量显示为未定义
- HTML 下拉列表到 Javascript 变量显示错误
- 变量显示为未定义
- ASP.Net Ajax - JavaScript:如何在HTML中使用返回的变量显示
- 如何使用变量显示来自 URL 的图像来创建 URL
- Javascript 实例变量显示为未定义
- 按图像计数变量显示图像列表
- 如何根据变量显示一定数量的输入字段
- 基于true/false变量显示/隐藏进度条
- Cognos Prompt页面提示使用render变量显示/隐藏
- 为什么变量显示为未定义
- javascript变量显示以前的值
- Firefox没有处理keyCode's.它在调试器中将变量显示为矩阵
- 为输入值设置变量显示对象对象消息
- 在angular.js中通过作用域变量显示或追加元素
- JavaScript -全局变量显示为未定义
- 如何使用javascript变量显示图像