Javascript jQuery插件中的If语句

Javascript jQuery插件中的If语句,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我有一个jQuery插件,里面有一个if语句 出于某种奇怪的原因(可能只是我把事情搞砸了),它总是出现在else部分,即使url是相同的 if (opts.startUrl == track.permalink.url) { var active = true; } else { alert('|'+opts.startUrl+'| |'+track.permalink_url+'|'); var active = false; } 查看@开始打印这两个值并查看差异,否则请执行此操

我有一个jQuery插件,里面有一个if语句

出于某种奇怪的原因(可能只是我把事情搞砸了),它总是出现在
else
部分,即使url是相同的

if (opts.startUrl == track.permalink.url) {
  var active = true;
} else {
  alert('|'+opts.startUrl+'| |'+track.permalink_url+'|');
  var active = false;
}

查看@

开始打印这两个值并查看差异,否则请执行此操作

if (opts.startUrl.toLowerCase() == track.permalink.url.toLowerCase())

开始打印这两个值并查看差异,否则请执行此操作

if (opts.startUrl.toLowerCase() == track.permalink.url.toLowerCase())

周围的代码使用
track.permalink\u url
,而
if
块计算
track.permalink.url
(始终是
未定义的
),因此此条件:

opts.startUrl == track.permalink.url
始终计算为
false

更新:正如@brianpeiris所指出的,正确的修复方法是将条件更改为:

opts.startUrl == track.permalink_url

周围的代码使用
track.permalink\u url
,而
if
块计算
track.permalink.url
(始终是
未定义的
),因此此条件:

opts.startUrl == track.permalink.url
始终计算为
false

更新:正如@brianpeiris所指出的,正确的修复方法是将条件更改为:

opts.startUrl == track.permalink_url

我会打印出startUrl和permalink.url是什么,例如使用console.log。确保它们完全相同,没有尾随或前导空格。不确定这里是否存在类型强制-您可能想看看使用===@planetjones+1,我也在想===。从他的示例来看,url看起来很相似。另一个选项是在每一块上使用.toString()。@planetjones:使用console.log时它们也是一样的(检查一下,我已经把它上传到服务器了)。为什么我需要看===?如果==失败===肯定会失败。我会打印出startUrl和permalink.url是什么,例如使用console.log。确保它们完全相同,没有尾随或前导空格。不确定这里是否存在类型强制-您可能想看看使用===@planetjones+1,我也在想===。从他的示例来看,url看起来很相似。另一个选项是在每一块上使用.toString()。@planetjones:使用console.log时它们也是一样的(检查一下,我已经把它上传到服务器了)。为什么我需要看===?如果==失败===肯定会失败。换句话说,这只是一个打字错误!将
track.permalink.url
更改为
track.permalink\u url
(注意下划线)。OMFG!我现在觉得自己很愚蠢这要花我很多时间才能看出来。谢谢@皮哈阿:没问题,有时候你需要的只是另一双眼睛:)@brianpeiris:说得好,我会更新我的答案,把问题弄清楚。换句话说,这只是一个打字错误!将
track.permalink.url
更改为
track.permalink\u url
(注意下划线)。OMFG!我现在觉得自己很愚蠢这要花我很多时间才能看出来。谢谢@佩哈:没问题,有时候你需要的只是另一双眼睛:)@brianpeiris:说得好,我会更新我的答案,让问题变得更清楚。