Javascript:nCaughtTypeError:无法读取属性';拆分';空的
我不明白这里发生了什么?有什么建议吗?这是在这条线上发生的:-Javascript:nCaughtTypeError:无法读取属性';拆分';空的,javascript,Javascript,我不明白这里发生了什么?有什么建议吗?这是在这条线上发生的:- var explode = gregorianDate.split('-'); 这里是完整的功能 function updateCalendarDay(){ if (document.getElementById('gregorianDateOutput') != null) { var gregorianDate = document.getElementById('gregorianDateOutput
var explode = gregorianDate.split('-');
这里是完整的功能
function updateCalendarDay(){
if (document.getElementById('gregorianDateOutput') != null) {
var gregorianDate = document.getElementById('gregorianDateOutput').value;
}else{
var gregorianDate = null;
}
if(gregorianDate != ""){
var explode = gregorianDate.split('-');
var year = explode[0];
var month = explode[1];
var day = explode[2];
document.getElementById('month').value = month;
document.getElementById('year').value = year;
var ajax = new GLM.AJAX();
var url='calendarAjax.php?month='+month+'&year='+year+'&day='+day;
ajax.callPage(url, showSubscribeResult, "GET");
}
}
正如@Jasper所建议的,如果找不到,您可以分配空字符串:
var gregorianDate = "";
而不是
var gregorianDate = null;
编辑:
您还可以仅按值进行检查:
if( gregorianDate )
作为元素
值
属性始终返回的字符串,只有当值存在时,才会得到该值您有一个字符串,该字符串有时可能为null
。为什么不使用一个有时可以为空的字符串呢?那么你就不会有类型问题了。这行不是应该这样吗if(document.getElementById('gregorianDateOutput').value!=null
)?我认为默认情况下输入条件是个好主意。这没有帮助<代码>空!==“是真的
。这只是检查gregorianDate
是否不是空字符串,以及null
是否不是空字符串。事实上,当您与null
进行比较时,使用松散比较还是严格比较并不重要。