【问题标题】:Javascript TypeError: Cannot read property 'indexOf' of undefined Exchange MessageJavascript TypeError:无法读取未定义交换消息的属性“indexOf”
【发布时间】:2018-10-25 16:55:00
【问题描述】:

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

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

【问题讨论】:

  • 验证您有一个带有id='_UserMessageText'HTML 元素。
  • xval = jQuery('[ID*="_UserMessageText"]').html(); 行之后执行console.log(xval ) 看看你得到了什么
  • 如果选择器不匹配任何内容,html() 将返回 undefined
  • 已经修复,请查看以下链接:[stackoverflow.com/questions/41895890/…

标签: javascript jquery


【解决方案1】:

TypeError:当值不是预期类型时,TypeError 对象表示错误。

您正在尝试访问变量xval 的属性indexOf,即undefined

String.prototype.indexOf()indexOf() 方法返回调用 String 对象中第一次出现指定值的索引,从 fromIndex 开始搜索。如果未找到该值,则返回 -1。

Array.prototype.indexOf()indexOf() 方法返回可以在数组中找到给定元素的第一个索引,如果不存在则返回 -1 .

undefined:全局undefined属性表示原始值undefined。它是 JavaScript 的原始类型之一。

由于undefined 对象不是字符串或数组,因此使用indexOf() 方法会出错。 xval 的值为 undefined,因为在 DOM 中找不到 ID 为 _UserMessageText 的 HTML 元素。

建议在使用它的功能之前通过JavaScript documentation 一次,以避免错误并最好使用 JavaScript。

也结帐jQuery features

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      • 2018-11-14
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      相关资源
      最近更新 更多