【问题标题】:error: Cannot read property 'split' of undefined错误:无法读取未定义的属性“拆分”
【发布时间】:2018-10-10 04:35:33
【问题描述】:

我从cookie 获取一个字符串值,其中存储了多个值。
我使用split() 函数分隔这些值,但我不断收到错误消息。这是我的代码。如果有人能帮我解决这个问题,那将是一个很大的帮助。

var sourcez = jQuery.cookie("Source");
var mediumz = jQuery.cookie("Medium");

function utmze(eutmz) {
  var utmz_val = jQuery.cookie("__utmzz");

  for (var o = utmz_val, r = o.split("|"), a = 0; (a < r.length); a++) {
    var t = r[a].split("=");

    if (t[0] == eutmz) {
      return t[1];
    }
  }
}

【问题讨论】:

  • 你遇到了什么错误?
  • 检查是否定义了utmz_val
  • 让我们知道console.log(utmz_val);的输出是什么
  • 该错误表明您正在尝试对未定义的对象执行某些操作。在您的情况下,它可能是or[a]。除此之外,您的for 定义很奇怪。

标签: javascript jquery cookies


【解决方案1】:

在执行拆分操作之前,请确保字符串不为空、null 和 undefined

function isValidString(input){
  if(input != null && input != '' && input != undefined){
     return true;
  }
  return false;
}
if(isValidString(input)){
   input.split('=');
}

【讨论】:

    【解决方案2】:

    进行以下更改以避免错误:

    var sourcez = jQuery.cookie("Source");
    var mediumz = jQuery.cookie("Medium");
    
    function utmze(eutmz) {
      var utmz_val = jQuery.cookie("__utmzz");
    
      for (var o = utmz_val, r = o.split("|"), a = 0; (a < r.length); a++) {
        if (typeof r[a] != "undefined") {  // Checking if the variable is defined.
          var t = r[a].split("=");
    
          if (t[0] == eutmz) {
            return t[1];
          }        
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 2019-01-20
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多