Javascript 当我试着做身份证的时候&引用;无法读取属性';长度';指未定义的;
亲爱的大家;我不确定是否也应该共享我的html项目。我被困在这里:/ 我已经检查了一些类似的问题,但还没有解决方案… 我想做一个ID,这个ID应该总是不同的,但不能解决我的问题 未捕获的TypeError:无法读取未定义的属性“length” 请帮助我: 未捕获 TypeError:无法读取未定义的属性“length” 在Object.addItem(app.js:30) 在kontrolEkle(app.js:112) 在HTMLDocument。(app.js:97) //价格预算控制 var butcekontrol=(函数(){ 当我回到这里:Javascript 当我试着做身份证的时候&引用;无法读取属性';长度';指未定义的;,javascript,Javascript,亲爱的大家;我不确定是否也应该共享我的html项目。我被困在这里:/ 我已经检查了一些类似的问题,但还没有解决方案… 我想做一个ID,这个ID应该总是不同的,但不能解决我的问题 未捕获的TypeError:无法读取未定义的属性“length” 请帮助我: 未捕获 TypeError:无法读取未定义的属性“length” 在Object.addItem(app.js:30) 在kontrolEkle(app.js:112) 在HTMLDocument。(app.js:97) //价格预算控制 v
return{
addItem: function(type,des,val){
var newItem,ID;
// YENİ ID OLUŞTURMA
if (data.tumislem[type].length > 0) {
ID = data.tumislem[type][data.tumislem[type].length - 1].id + 1;
} else {
ID = 0
}
// Tipine Göre Ekleme Çıkarma Yapma
if(type==='exp'){
newItem = new Giderler(ID , des , val)
} else if(type==='inc'){
newItem = new Gelirler(ID , des, val)
}
// Dataya Push İşlemi Yapma
data.tumislem[type].push(newItem);
// RETURN//
return newItem;
},
testing:function(){
console.log(data);}
};
})();
用户界面控制代码区
var arayuz = (function(){
var Domstrings = {
InputType:'.add__type',
InputDescription:'.add__description',
InputValue:'.add__value',
InputBtn:'.add__btn',
};
return {
getInput: function() {
return {
type: document.querySelector(Domstrings.InputType).value, // Will be either inc or exp
description: document.querySelector(Domstrings.InputDescription).value,
value: document.querySelector(Domstrings.InputValue).value
};
},
getDomstrings:function(){
return Domstrings;
}
}
})();
最后一部分呢
var kontrol = (function(butceknt,arayz){
var setupcontroller = function(){
//KODLAR BURAYA
var DOM = arayuz.getDomstrings();
document.querySelector(DOM.InputBtn).addEventListener('click',kontrolEkle);
document.addEventListener('keypress', function(tik){
if(tik.keyCode===13){
kontrolEkle();
}})
//END Of the line
}
var kontrolEkle = function(){
//1. Formlardan Değer Alma
var input,addItem;
input = arayuz.getInput();
console.log(input);
//2.Bütçe Kontrole Ekleme
addItem = butcekontrol.addItem(input.type,input.description,input.value);
//3.Kullanıcı Arayüzünde Güncelleme
//4.Bütçeyi Hesaplama
//5.Kullanıcıya Son Bütçeyi Gösterme
}
return{
init:function(){
console.log('Application Started');
setupcontroller();
}
}
})(butcekontrol,arayuz);
kontrol.init();
发生这种情况是因为您试图获取未定义的长度,您能否确保数据。tumislem[type].length通过控制台返回值。记录它?嘿,伙计,我认为这一行是问题所在
ID=data.tumislem[type][data.tumislem[type].length-1].ID+1;
data.tumislem[type]
返回为null
或undefined
,请先检查那里。console.log(data.tumislem[type])
var kontrol = (function(butceknt,arayz){
var setupcontroller = function(){
//KODLAR BURAYA
var DOM = arayuz.getDomstrings();
document.querySelector(DOM.InputBtn).addEventListener('click',kontrolEkle);
document.addEventListener('keypress', function(tik){
if(tik.keyCode===13){
kontrolEkle();
}})
//END Of the line
}
var kontrolEkle = function(){
//1. Formlardan Değer Alma
var input,addItem;
input = arayuz.getInput();
console.log(input);
//2.Bütçe Kontrole Ekleme
addItem = butcekontrol.addItem(input.type,input.description,input.value);
//3.Kullanıcı Arayüzünde Güncelleme
//4.Bütçeyi Hesaplama
//5.Kullanıcıya Son Bütçeyi Gösterme
}
return{
init:function(){
console.log('Application Started');
setupcontroller();
}
}
})(butcekontrol,arayuz);
kontrol.init();