大家好,我正在尝试匹配一个网址,并且根据网址中是否存在ID,我会添加一个会触发覆盖的类。
如果我导航到最后添加了以下内容的网址:?active-overlay=jj-instagram-feed-widget-2
,我会触发叠加层,一切正常。
但是,如果我直接导航到没有active-overlay
网址参数的网页,我会收到以下控制台错误:
Cannot read property 'length' of null.
我猜错了,因为它无法在网址中找到active-overlay
。
我怎样才能解决这个问题?
这是我的代码:
var url = window.location.href;
if (url.match("active-overlay").length > 0) {
var activeOverlayID = url.match(/=(.+)/)[1];
$('#' + activeOverlayID + '').find('.instagram-feed__image').siblings().addClass('popup');
}
答案 0 :(得分:1)
您只需在该条件检查之前检查null
url.match("active-overlay") !== null
所以你的代码将是,
var url = window.location.href;
var matchUrl = url.match("active-overlay");
if (matchUrl !== null && matchUrl.length > 0) {
var activeOverlayID = url.match(/=(.+)/)[1];
$('#' + activeOverlayID + '').find('.instagram-feed__image').siblings().addClass('popup');
}
因此,如果matchUrl
为null
,则该语句将变为false
,并且不会转到下一个&&
条件。作为'&&'如果任何前述条件为false
,则结果为false。
答案 1 :(得分:0)
您可以尝试使用此
if (url.match("active-overlay")!=null && url.match("active-overlay").length > 0) {
var activeOverlayID = url.match(/=(.+)/)[1];
$('#' + activeOverlayID + '').find('.instagram-feed__image').siblings().addClass('popup');
}