JQuery - Is()函数优化

时间:2016-09-24 19:00:34

标签: javascript jquery performance function

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

Intent i =new Intent(context,User.class);//Problem solved
context.startActivity(i);

或者,我可以直接使用班级名称:

if(myObject.Is( templateObject )
{
    //Do stuff
}

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

2 个答案:

答案 0 :(得分:1)

IMO jquery if (myObject.hasClass('example')){ // Code } 在这里效率更高,专门用于此目的。

for number in largeNumber {  //large number is 1000

  let count = try self.context.count(for: countRequest)

   }  

答案 1 :(得分:-1)

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

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