首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript TypeError:无法读取未定义的交换消息的属性“”indexOf“”

Javascript TypeError:无法读取未定义的交换消息的属性“”indexOf“”
EN

Stack Overflow用户
提问于 2018-10-26 00:55:01
回答 2查看 321关注 0票数 1

我有一个页面上的以下脚本,我想要替换一些系统语言。

<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‘。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 0
EN

Stack Overflow用户

发布于 2018-10-26 04:40:15

TypeError和script标记表示JS在加载HTML代码之前正在运行。要解决这个问题,只需将脚本标记放在body元素的最底部,以便在JS之前加载其余的HTML。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52994477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档