我在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,我不希望它在这里索引)。
答案 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 ) {}