1

我必须根据在我的网站中输入的搜索词来显示不同的 div。URL 将包含输入的搜索词,所以我想我可以检查 URL 中的字符串并在匹配时显示 div。

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

根据我在这里这里阅读的内容,我尝试了下面的代码,并且还使用 && 而不是 || 因为第二个链接解释了第二个条件只有在第一个条件为假时才被读取。我发现了这一点,并尝试用逗号分隔。不过,没有一个对我有用。这是我现在的位置:

        <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 来做到这一点。

4

3 回答 3

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
}
于 2013-09-10T16:24:12.753 回答
0

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

将代码更改为

if ( (window.location.href.indexOf("searchTerm=Doufeu") > -1) ||
     (window.location.href.indexOf("searchTerm=doufeu") > -1)    ){
于 2013-09-10T16:27:35.953 回答
0

我建议将条件语句拆分如下:

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

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

于 2013-09-10T16:28:54.690 回答