JavaScript运行时错误:* * 无法获取未定义或空引用的属性"split"**
var split = $(this).prop('name').split('&;');
请推荐我。
piv4azn71#
这可能是$(this)的目标元素没有name属性的情况,即使它有,你仍然不能使用.prop()应用.split()方法,因为它返回布尔值true/false而不是属性值。因为.prop()方法返回一个布尔值true/false而不是该属性的值,所以在这种情况下应该使用.attr()方法:
$(this)
name
.prop()
.split()
true/false
.attr()
var split = $(this).attr('name').split('&;');
原因:简单示例可以是..
<input type="test" value="test" id="test" disabled />
这里你可以看到value,id和disabled,其中value和id可以用来获取它的值,就像value有test,id有test一样。但是disabled是一个属性,它没有任何赋值。检查以下测试用例:一个二个一个一个在上面的例子中,你可以看到input有一个属性disabled="disabled",但是.prop()并没有给出它的值,它会给出一个布尔值,表示属性disabled在这个元素上是否可用。
disabled
input
disabled="disabled"
noj0wjuj2#
属性名为$(this)的对象不存在,拆分前需要检查,如下所示:
if ($(this).prop('name')!=undefined && $(this).prop('name') != null) var split = $(this).prop('name').split('&;');
2条答案
按热度按时间piv4azn71#
这可能是
$(this)
的目标元素没有name
属性的情况,即使它有,你仍然不能使用.prop()
应用.split()
方法,因为它返回布尔值true/false
而不是属性值。因为
.prop()
方法返回一个布尔值true/false
而不是该属性的值,所以在这种情况下应该使用.attr()
方法:原因:
简单示例可以是..
这里你可以看到value,id和disabled,其中value和id可以用来获取它的值,就像value有test,id有test一样。
但是
disabled
是一个属性,它没有任何赋值。检查以下测试用例:
一个二个一个一个
在上面的例子中,你可以看到
input
有一个属性disabled="disabled"
,但是.prop()
并没有给出它的值,它会给出一个布尔值,表示属性disabled
在这个元素上是否可用。noj0wjuj2#
属性名为$(this)的对象不存在,拆分前需要检查,如下所示: