jquery if语句和hasClass?

时间:2013-01-15 21:54:52

标签: php javascript jquery

我正在使用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

jQuery — hasClass in if statement not playing nicely

http://api.jquery.com/hasClass/

2 个答案:

答案 0 :(得分:5)

您需要将this包裹在$()

$(this).hasClass('homelink');
在这种情况下,

this是DOMElement,而dom元素没有hasClass方法。通过将this传递给$(),它就变成了一个具有hasClass方法的jQuery对象。

答案 1 :(得分:0)

使用:not()选择器的另一种方法:

jQuery(scope + "a:not(.homelink)").click(function(event){