我正在尝试找出以下代码的错误,将其输出到具有特定模板的所有页面。
当我导航到/ auth / remind时,它会正确地重定向到/ forgot /。当它进入/ auth / check /它重定向到/忘记/成功/正确。但是,如果我转到/,它会自动选择/?status = 1,.valign <p>
元素是否包含“#1”,“#2”或者没有。
任何想法是什么问题?谢谢!
<script type="text/javascript">
if (window.location.pathname=="/") {
if ($('.valign:contains("#1")')) {
window.location.replace('https://website.com/?status=1');
} else if ($('.valign:contains("#2")')) {
window.location.replace('https://website.com/?status=2');
} else {
window.location.replace('https://website.com/');
}
} else if (window.location.pathname.substring(0, 12) == "/auth/remind") {
window.location.replace('https://website.com/forgot');
} else if (window.location.pathname.substring(0, 11) == "/auth/check") {
window.location.replace('https://website.com/forgot/success');
}
</script>
答案 0 :(得分:3)
对象$('.valign:contains("#1")')
是一个jQuery实例,它始终是值得的。这意味着,即使'.valign:contains("#1")'
选择器没有产生任何结果,$('.valign:contains("#1")')
仍将是&#34; true&#34;。
检查选择器是否与某些元素匹配的正确方法是使用返回对象的length
属性:
if ($('.valign:contains("#1")').length) {
// ...
}