首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery - Is()函数优化

JQuery - Is()函数优化
EN

Stack Overflow用户
提问于 2016-09-25 03:00:34
回答 2查看 50关注 0票数 2

我有很多迭代,我想检查myObject是否有.example类。我可以使用在初始化时预定义为$(‘.class’)的templateObject来完成此操作:

代码语言:javascript
复制
if(myObject.Is( templateObject )
{
    //Do stuff
}

或者,我可以直接使用类名:

代码语言:javascript
复制
if(myObject.Is( '.example' )
{
    //Do stuff
}

所以我想知道第二个例子是让jQuery在每次迭代中都通过DOM进行搜索,还是以更优的方式进行比较?哪一个例子更好?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-25 03:05:21

IMO hasClass()在这里更有效,它是专门为此目的而设计的。

代码语言:javascript
复制
if (myObject.hasClass('example')){
    // Code
}
票数 1
EN

Stack Overflow用户

发布于 2016-09-25 03:12:50

你的两个例子是不一样的。如果调用$('.example'),您将找到具有类.example的所有元素,如果您将其用作myObject.is(templateObject)的测试,那么您将测试jQuery结果集myObject中的一个元素是否等于结果集templateObject中的一个元素。因此,如果存储在myObject中的DOMElements不在templateObject列表中,因为它们是稍后添加的,那么即使myObject具有example类,is也会返回false

使用myObject.is( '.example' )测试是否可以使用选择器.example找到元素myObject (它不会执行完整的DOM搜索,它将从给定元素开始-如果选择器更复杂-只遍历其父级)。这将始终有效,但正如其他人已经提到的,如果您想测试myObject是否具有某个类,那么您应该使用hasClass

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39679919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档