我正在一个大量使用Ajax请求的网站上,在DOM中构建基于标签的结构。我担心的是,DOM会积累很多选项卡和元素,JQuery选择器最终会表现不佳。
有没有办法维护一个大的DOM,但是提供了一个"提示"排除某些部分。例如,我想维护DOM中的元素,但只有我的JQuery选择器才能应用于活动选项卡。
我希望会有某种"忽略"我可以动态应用于非活动部分的标记
也许它可以替代将非活动标签元素存储在数据字典中,并在它们成为焦点时将它们导入和导出DOM。
答案 0 :(得分:1)
只需提供一个选择器,告诉jquery你想要什么。例如,为每个标签指定id
。然后,如果您想在a
标签中获取所有news
代码:
$("#news a")
然后,jQuery只知道查看#news
。
一般来说, id
查询非常有效,因为只有一个元素可以具有给定的id
。
答案 1 :(得分:1)
答案 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