按类

时间:2015-05-22 23:31:35

标签: jquery if-statement

我正在点击事件中使用jq .load()从我网站上的其他页面将内容加载到我的页面中。

这很好用,但是我想检查文档中是否有内容加载到页面之前首先加载的元素的类,以防加载已经完成。

这是因为页面上会有多个可以调用内容的点击事件。

我有启动click函数的元素,我给出了'title'属性与要加载的元素的类匹配。

例如,如果我加载到页面中的元素具有类'loadedContent'

我为每个调用此内容的点击元素添加标题'loaded content'

然后我从click元素中获取此标题,搜索文档以查看是否有任何元素具有与该标题匹配的类。

如果页面上已经加载了一个具有与标题匹配的类的元素,那么我将不会执行加载代码。如果没有,则执行.load()函数。

目前我从click元素获取'title'属性,但我无法成功搜索文档以查找匹配的类。

我认为代码应该很简单,并且当前有(在点击事件之后):

var getLabel = $(this).parent().attr( "title" );
if ($(document).hasClass( getLabel )) {
    // do a function
}
else {
    // perform load of content
}

我的加载函数附加到正文,因此它可能会使用正文而不是文档,但要么不起作用。

我不确定应该从哪里开始,因为它应该有效。

1 个答案:

答案 0 :(得分:4)

您需要使用.find().length代替.hasClass()

if($(document).find('.' + myclass).length < 1) {
    alert('Class Not found');
} else {
    alert('Class Found');
}

DEMO

如果您在getLabel中获得课程,则可以使用

var getLabel = $(this).parent().attr( "title" );
if($(document).find('.'+ getLabel).length < 1) {
    alert('Class Not found');
} else {
    alert('Class Found');
}

不要忘记在.find(' . ' + getLabel)

中的课前添加点