我正在使用wordpress和一个名为高级ajax页面加载器的插件。 http://wordpress.org/extend/plugins/advanced-ajax-page-loader/
我对php,javascript和jquery有点熟悉,但无论如何都不是专家。我有以下代码块,它排除了在ajax中加载的某些页面,并且效果很好。
jQuery(scope + "a").click(function(event){
//if its not an admin url, or doesnt contain #
if ( this.href.indexOf(AAPLhome) >= 0 && this.href.indexOf('/wp-') < 0 && this.href.indexOf('#') < 0 && this.href.indexOf('/search') < 0 && this.href.indexOf('/2013') < 0 && this.href.indexOf('/2012') < 0 && this.href.indexOf('/2011') < 0 && this.href.indexOf('/feed') < 0 && this.href.indexOf('/portfolio') < 0 && this.href.indexOf('/store') < 0 ){
// stop default behaviour
event.preventDefault();
});
如您所见,我在其网址中排除了包含特定字符串的网页。
但是我需要定位主页链接并通过这种方式插入主页面,所有页面都包含主页面,因此它们都被排除在外。我希望能够在此代码块中插入hasClass语句,以便我可以排除具有“homelink”类的链接。
以下给出了我的错误.hasClass不是函数。
this.hasClass('homelink')
所以我一定是做错了什么,但是如果我知道什么的话,我就知道了。
我已经尝试过查看这些链接,但没有从中得到很多。
Jquery hasClass + If Statement
答案 0 :(得分:5)
您需要将this
包裹在$()
$(this).hasClass('homelink');
在这种情况下, this
是DOMElement,而dom元素没有hasClass
方法。通过将this
传递给$()
,它就变成了一个具有hasClass
方法的jQuery对象。
答案 1 :(得分:0)
使用:not()
选择器的另一种方法:
jQuery(scope + "a:not(.homelink)").click(function(event){