0

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

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

我希望有某种“忽略”标签可以动态应用于非活动部分

也许将非活动选项卡元素存储在数据字典中并在它们成为焦点时将它们带入和带出 DOM 是一种替代方法。

4

4 回答 4

1

只需提供一个选择器来告诉 jquery 你想要什么。例如,给每个选项卡一个id. 然后,如果您想获取选项卡a中的所有标签news

$("#news a")

然后 jQuery 将只知道在#news.

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

于 2012-04-22T23:47:56.630 回答
1

你可以使用context方法:

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

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

于 2012-04-22T23:52:25.007 回答
1

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

$elements.filter(function(){
    return $(this).parent('.foo').length; // Only elements with parent `.foo`
});
于 2012-04-22T23:52:28.220 回答
0

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

于 2012-04-22T23:49:38.877 回答