如何以懒惰的方式调用jquery .find?

时间:2012-11-27 23:53:10

标签: javascript jquery iteration lazy-evaluation

使用jquery在XML DOM结构中定位一组元素时;

将.find与CSS查询一起使用将导致可以迭代的结果,但是jquery将返回当时的所有结果,这很慢并且暂停我的UI。

我如何以懒惰的方式迭代结果?

我发现有一个.first()方法,但我在文档中找不到.next(),我缺少什么?

3 个答案:

答案 0 :(得分:3)

是的,您可以使用next()prev()转到DOM结构中的下一个或上一个兄弟。

答案 1 :(得分:2)

我最好的建议是包含您的搜索。永远不要运行全局查询如果可能的话,从可以通过ID检索的元素开始搜索(以限制要遍历的节点数)

例如,而不是以下

var infoList = $("a.query span.info")

使用

var container = $('#myCt');
var infoList = container.find('a.query span.info');
// OR more simply (but I'm not sure jQuery optimizes the query)
var infoList = container.find('#myCt a.query span.info')

答案 2 :(得分:-3)

$(".class").each(function() {
//do code here
});