我有一个页面上的以下脚本,我想要替换一些系统语言。
<script>
function xchangemessage2()
{
xval = jQuery('[ID*="_UserMessageText"]').html();
xvalpos = xval.indexOf("We could not find your information in our system. Please search again or contact us for assistance.");
xvallen = xval.length;
if (xvalpos > 0)
{
jQuery('[ID*="_UserMessageText"]').html(xval.substring(0, xvalpos+xvallen) + ' If you provided a valid user name, an email will be sent to the email address on file.')
}
}
Sys.Application.add_load(xchangemessage2);
</script>
我不断地得到
Javascript TypeError:无法读取未定义的属性'indexOf‘。
发布于 2018-10-26 04:23:11
:当值不是预期类型时,TypeError对象表示错误。
您正在尝试访问变量xval
的属性indexOf
,该属性为undefined
。
:indexOf()方法返回调用String对象中第一次出现指定值的索引,从fromIndex开始搜索。如果未找到该值,则返回-1。
:indexOf()方法返回可以在数组中找到给定元素的第一个索引,如果不存在,则返回-1。
:全局未定义属性表示原始值undefined
。它是JavaScript的原始类型之一。
由于undefined
对象既不是字符串也不是数组,因此使用indexOf()
方法会产生错误。xval
的值为undefined
,因为在DOM中找不到id为_UserMessageText
的HTML元素。
我建议在使用它的功能之前先看一遍JavaScript documentation,以避免错误,最好是使用JavaScript。
还可以查看jQuery features。
发布于 2018-10-26 04:40:15
TypeError和script标记表示JS在加载HTML代码之前正在运行。要解决这个问题,只需将脚本标记放在body元素的最底部,以便在JS之前加载其余的HTML。
https://stackoverflow.com/questions/52994477
复制相似问题