Javascript如果这个OR这个语句 - 第二个条件被忽略

时间:2013-09-10 16:22:01

标签: javascript jquery html if-statement conditional-statements

我必须根据输入到我网站的搜索字词来显示不同的div。该URL将包含输入的搜索词,因此我认为我可以检查URL中的字符串并显示div是否匹配。

对于Doufeu / doufeu部分,div只会根据第一个词显示。代码如下 - 它只显示Doufeu是否在字符串中,而不是doufeu。为什么呢?

根据我阅读herehere的内容,我尝试了以下代码,并使用了&&而不是||因为第二个链接解释了第二个条件只有在第一个条件为假时才被读取。我找到this并尝试用逗号分隔。不过对我来说没有用。我现在就在这里:

        <script type="text/javascript">
        $(document).ready(function(){

            if ((window.location.href.indexOf("searchTerm=Doufeu" || "searchTerm=doufeu") > -1)){
            $("#learn-doufeu").show();
        }

        else {
            $("#ci-guide").show();
        }
        });
        </script>

我知道我可以制作一个新的if else条件并将doufeu与Doufeu分开,但肯定有办法用OR来做。

3 个答案:

答案 0 :(得分:6)

or - 两个字符串在一起,而不是indexOf的结果。改为做两个单独的电话:

if (window.location.href.indexOf("searchTerm=Doufeu") != -1 || window.location.href.indexOf("searchTerm=doufeu") != -1)

可能更好的方法是使用正则表达式。

if (/searchTerm=[Dd]oufeu/.test(window.location.href)) {
    // do stuff
}

答案 1 :(得分:0)

您的代码并未反映您的意图。您的代码实际上应用了OR运算||两个字符串而不是比较。

将代码更改为

if ( (window.location.href.indexOf("searchTerm=Doufeu") > -1) ||
     (window.location.href.indexOf("searchTerm=doufeu") > -1)    ){

答案 2 :(得分:0)

我建议按如下方式拆分条件语句:

if (window.location.href.indexOf("searchTerm=Doufeu") > -1 || window.location.href.indexOf("searchTerm=doufeu") > -1))

这应该允许两个比较,同时将支票保持在单个if。