Javascript “未捕获的TypeError:无法读取null的属性'toString'”

Javascript “未捕获的TypeError:无法读取null的属性'toString'”,javascript,if-statement,Javascript,If Statement,调试此代码时,if语句的else部分出现此错误。我对java脚本不是很熟悉,因此任何帮助都会很好: 已选择功能{ var oSrc=event.src元素 var oCrit var oCritB var lstListItems var iCritPK=oSrc.getAttribute'CRIT_PK' oSrc.style.visibility=隐藏; oSrc.style.display=无; 如果oSrc.id.indexOflstCritB!=-1{ oCrit=$get'CritB

调试此代码时,if语句的else部分出现此错误。我对java脚本不是很熟悉,因此任何帮助都会很好:

已选择功能{ var oSrc=event.src元素 var oCrit var oCritB var lstListItems var iCritPK=oSrc.getAttribute'CRIT_PK' oSrc.style.visibility=隐藏; oSrc.style.display=无; 如果oSrc.id.indexOflstCritB!=-1{ oCrit=$get'CritB'+iCritPK.toString; oCrit.value=oSrc.options[oSrc.selectedIndex].text; }否则{ oCrit=$get'Crit'+iCritPK.toString;//错误在此行中 oCrit.value=oSrc.options[oSrc.selectedIndex].text; 如果oCrit.onchange{ oCrit.onchange; } //设置范围结束字段的值(如果有) 试一试{ oCritB=$get'CritB'+iCritPK.toString; 如果oCritB.value=={ 如果oSrc.options[oSrc.selectedIndex].value!=全部{ oCritB.value=oSrc.options[oSrc.selectedIndex].text; } } }抓住e{ 回来 } } } 编辑:我应该补充一点,该功能用于在web浏览器中选择下拉框。问题是我无法在下拉框中选择项目,并且无法在同一框中显示所选项目。此代码在IE11中有效,但在Google Chrome中无效

编辑2:这是谷歌浏览器中调试器的截图
因为该变量是调用getAttribute方法的结果,如果未设置,该方法将返回null。null不包含方法“toString”,因此正确引发了错误

也许考虑执行一个else-if案例,检查该值是否显式不为null

... 
}
else if ( iCritPK !== null ) { 
...

请尝试将事件作为参数传递


函数doDDItemSelectedevent{

iCritPK为空。请找出为什么使用调试器。嗨,这是拖放事件吗?不,这是从下拉框中选择项。问题是,当选择项时,它们不会显示在框中。在Internet explorer中工作,但在google chrome中不工作。嗨,看到我的答案,这是一个事件onchange=doDDItemSelected right??由于您无法对null对象调用方法,不是因为null无法转换为stringfair…这就是我的意思…我将更改语言以确保正确性。thanksIt仍然错误。您无法访问null对象的成员。尝试取消引用null对象以访问成员将导致此异常。如果您尝试调用方法如果在确实存在的对象上不存在,您将得到另一个错误。var x={};x.foo将抛出一个TypeError:x.foo不是一个函数。将其与var y=null;y.foo进行对比。在问题中,不会抛出错误是因为对象不包含该方法;不会抛出错误是因为没有对象。如此接近!我现在可以单击下拉列表项,但它仍然不会将所选项放入下拉列表中box.pls你能不能附上调试器的屏幕截图,并导航到元素选项卡查看元素下拉属性,如id、类等属性的正确名称你试图选择的名称CRIT_PK不正确,你也不需要尝试删除它。