【发布时间】:2013-06-24 18:00:52
【问题描述】:
我有这段代码可以操作 asp.net treeview html 代码。
此代码经常运行,因此尽可能快地运行很重要。
我想了解更多关于 jquery 选择器和提高其速度的信息。到目前为止,我能够自己获取此代码。
有些事情我不确定是如果你想要第三个子元素,我应该使用[2] 或.eq(2) 还是:nth-child(2)?另外,如果我使用$ 从一组选定的东西中选择一些东西,这是必要的,还是已经选择了?
有人知道我可以做些什么来提高我的 jquery 选择效率吗?
谢谢。
function showResultsOnTreeview(treeviewID, filenameDictionary) {
var sectionNodes = $("#" + treeviewID + " > table");
var numOfSections = sectionNodes.length;
var i, j, sectionName, divContainer, itemNodes, numOfItems, itemName, itemTag, itemPath;
for (i = 0; i < numOfSections; i += 1) {
sectionName = $(sectionNodes[i]).text();
divContainer = $(sectionNodes[i]).next('div');
divContainer.hide();
itemNodes = $('table', divContainer);
numOfItems = itemNodes.length;
for (j = 0; j < numOfItems; j += 1) {
itemTag = $('td', $(itemNodes[j])).eq(2);
itemTag.removeClass('treeViewResult');
itemName = getNameFromItem($(itemNodes[j]).text());
itemPath = filenameDictionary[itemName];
if (itemPath != null) {
if (itemPath.indexOf(sectionName + "/" + itemName) != -1) {
itemTag.addClass('treeViewResult');
divContainer.show();
}
}
}
}
}
【问题讨论】:
-
@epascarello:我什至不知道如何使用它,因为它来自私有 Microsoft 共享点环境中的 asp.net 解决方案。
-
一定要尽量缓存对象,比如
var sect = $(sectionNodes[i]); -
所以如果我这样做 $(X),并且这给了我一个大小为 5 的数组,我需要这样做 $(X[0]) 还是已经选择了 X[0] ?
-
你不知道如何制作不同选择器的简单测试用例?添加一些 HTML 并测试,看看哪个选项运行得最快!
标签: javascript jquery html performance cpu-speed