如果没有子字符串,如何跳过以避免控制台中的错误? [英] How to skip if there is no substring to avoid error in console?

查看:101
本文介绍了如果没有子字符串,如何跳过以避免控制台中的错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在设置子字符串

var hash = document.location.hash;

// create an object to act like a dictionary to store each value indexed by its key
var partDic = {};

// remove the leading "#" and split into parts
var parts = hash.substring(1).split('&');

// If you just want the first value, whatever it is, use this.
// But be aware it's a URL so can be set to anything in any order, so this makes little sense
// var string = parts[0].split('=')[1];

// build the dictionary from each part
$.each(parts, function(i, v) {
// do the "=" split now
var arr = v.split("=");

// decode to turn "%5B" back into "[" etc
var key = decodeURIComponent(arr[0]);
var value = decodeURIComponent(arr[1]);

// store in our "dictionary" object
partDic[key] = value;
});

setTimeout( function() {
    var ag = partDic["comboFilters[Agencies]"].substring(1);
    $('.Agency .dropdown-toggle').html(ag).append(' <span class="caret"></span>');
    var cl = partDic["comboFilters[Clients]"].substring(1);
    $('.Client .dropdown-toggle').html(cl).append(' <span class="caret"></span>');
    var yr = partDic["comboFilters[Years]"].substring(1).slice(1);
    $('.Year .dropdown-toggle').html(yr).append(' <span class="caret"></span>');
}, 1000);

但是如果没有子字符串,我会得到:

But if there is not a substring, I am getting:

Uncaught TypeError: Cannot read property 'substring' of undefined

我猜我需要一个简单的if/else,但是我不确定在这种情况下该怎么做

I am guessing I need a simple if/else but I am not sure how to in this case

推荐答案

Thanks to this answer, I got this as a solution:

if("comboFilters[Agencies]" in partDic) {
   var ag = partDic["comboFilters[Agencies]"].substring(1);
   $('.Agency .dropdown-toggle').html(ag).append(' <span class="caret"></span>');
}

这篇关于如果没有子字符串,如何跳过以避免控制台中的错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆