首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript如果这个或这个语句-第二个条件被忽略

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

Stack Overflow用户
提问于 2013-09-10 16:22:01
回答 3查看 998关注 0票数 1

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

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

基于我所读到的herehere,我尝试了下面的代码,并且使用&&而不是\,因为第二个链接解释了第二个条件只有在第一个条件是假的情况下才被读取。我找到了this,并尝试用逗号分隔。不过,没有人对我有用。这就是我现在的处境:

代码语言:javascript
运行
复制
        <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>

我知道我可以创造一个新的条件,把豆瓣和豆瓣分开,但肯定有办法用OR来做。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-10 16:24:12

您是or-ing两个字符串在一起,而不是indexOf的结果。进行两次单独的呼叫:

代码语言:javascript
运行
复制
if (window.location.href.indexOf("searchTerm=Doufeu") != -1 || window.location.href.indexOf("searchTerm=doufeu") != -1)

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

代码语言:javascript
运行
复制
if (/searchTerm=[Dd]oufeu/.test(window.location.href)) {
    // do stuff
}
票数 6
EN

Stack Overflow用户

发布于 2013-09-10 16:27:35

您的代码没有反映您的意图。实际上,您的代码对这两个字符串应用了OR操作,而不是对比较。

将代码更改为

代码语言:javascript
运行
复制
if ( (window.location.href.indexOf("searchTerm=Doufeu") > -1) ||
     (window.location.href.indexOf("searchTerm=doufeu") > -1)    ){
票数 0
EN

Stack Overflow用户

发布于 2013-09-10 16:28:54

我建议将有条件的陈述分开如下:

代码语言:javascript
运行
复制
if (window.location.href.indexOf("searchTerm=Doufeu") > -1 || window.location.href.indexOf("searchTerm=doufeu") > -1))

这应该允许两种比较,同时将检查保持在一个if中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18724168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档