Jquery if / else语句不起作用

时间:2014-12-22 10:24:28

标签: jquery

我在wordpress中遇到if / else语句的问题。请注意,根据本文http://matthewruddy.com/using-jquery-with-wordpress/,下面的Jquery代码包含允许jquery在wordpress中工作的标记。

所以下面的函数应该如下工作:

- 我检查文件引荐来查看它是否包含参数博客

- 如果它确实包含了博客这个词,我会点击同位素过滤器

- 如果它不包含博客这个词,我会在另一个同位素过滤器上启动两次点击

jQuery(document).ready(function($) {
    $(window).load(function() {
        var lastUrl = document.referrer;
        console.log(lastUrl);
        if(lastUrl.search("blog")) {
            console.log('blog');
            $(".esg-filterbutton[data-filter='filter-blog']").click(); 
            return false;
        } else {
            $(".esg-filterbutton[data-filter='filter-social-media']").click()
            console.log('not-blog');
            $(".eg-post-id-1347").click(); 
            return false;
        }
    });
});

我添加了控制台日志以检查功能的哪个部分失败。

换句话说,任何直接访问此页面的人都应该自动点击过滤器社交媒体。如果您通过过滤器进入博客文章,然后单击返回或返回,则应根据博客帖子的引荐来再次启动博客过滤器。

问题是,即使网址中不包含“博客”字样,在其中,我仍然从if语句获取控制台日志和结果操作,而不是else语句。我忽略了什么想法?

你可以看到它在这里生活www(点)dev(点)stretchexp(点)com / blog /(道歉如此编写测试URL,我不希望它在这里索引)。

3 个答案:

答案 0 :(得分:1)

在javascript中使用.indexOf()

if(lastUrl.indexOf("blog") > -1) {

}

答案 1 :(得分:1)

lastUrl.search()返回的值将是匹配单词的第一个字母的索引。所以在这种情况下,如果'lastUrl'没有你正在寻找的单词那么它会返回-1。

如果-1的条件始终为真。这就是你的情况下不执行else条件的原因。

if(lastUrl.search("blog") > -1){//your code}

答案 2 :(得分:1)

jQuery搜索返回第一次出现的位置。只需检查它是否大于或等于零。

if(lastUrl.search("blog") >=0 ) {}