这个jQuery选择器非常慢。为什么?

时间:2011-04-19 17:28:17

标签: javascript jquery jquery-selectors css-selectors

我通过传入一些HTML字符串来创建一个简单的jQuery对象。但是在IE7中,警报告诉我需要大约125毫秒。

var timeStart = new Date();
var allTabs = jQuery(tmbJsContent);

var timeEnd = new Date();
alert(timeEnd-timeStart);

tmbJsContent包含10个div的html,其中包含表格。我理解它有点长,但由于没有DOM被操纵,只有一个jQuery对象正在创建。什么可能需要这么长时间?我怎样才能让它更快?

由于

2 个答案:

答案 0 :(得分:3)

创建容器元素并更新其innerHTML内容

var container = document.createElement("div");
container.innerHTML = tmbJsContent;

应该花费大约一毫秒:)

答案 1 :(得分:1)

要真正回答这个问题,我们需要看到 tmbJsContent 的价值......

在此期间,如果您的选择器很慢,请尝试通过传入容器(作为上下文)来限制选择器的“搜索区域”。

示例:

var context = jQuery('#SomeContainer');
var target = jQuery('MySelector', context);

这会将selector-search限制为传入的容器。