防止jQuery遍历部分文档

时间:2012-04-22 23:45:21

标签: jquery asp.net

我正在一个大量使用Ajax请求的网站上,在DOM中构建基于标签的结构。我担心的是,DOM会积累很多选项卡和元素,JQuery选择器最终会表现不佳。

有没有办法维护一个大的DOM,但是提供了一个"提示"排除某些部分。例如,我想维护DOM中的元素,但只有我的JQuery选择器才能应用于活动选项卡。

我希望会有某种"忽略"我可以动态应用于非活动部分的标记

也许它可以替代将非活动标签元素存储在数据字典中,并在它们成为焦点时将它们导入和导出DOM。

4 个答案:

答案 0 :(得分:1)

只需提供一个选择器,告诉jquery你想要什么。例如,为每个标签指定id。然后,如果您想在a标签中获取所有news代码:

$("#news a")
然后,jQuery只知道查看#news

一般来说,

id查询非常有效,因为只有一个元素可以具有给定的id

答案 1 :(得分:1)

您可以使用context方法:

最初传递给jQuery()的DOM节点上下文;如果没有传递,则上下文可能是文档。

http://api.jquery.com/context/

答案 2 :(得分:1)

正如我在评论中所说,使用选择器的方式取决于您的代码。但如果您最终得到一个巨大的选择器列表,您可以随时filter()使用任何规则收集该集合。

$elements.filter(function(){
    return $(this).parent('.foo').length; // Only elements with parent `.foo`
});

答案 3 :(得分:0)

在你的选择器上,你可以传递一个上下文作为第二个参数来告诉jquery你要查看文档的哪个部分,比方说:var selectedItem = $('#listItem' + i, $('.myList'));这会减少要查找的节点数量。 参考:http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx#tip9