我已经知道' jquery.find'从当前选择器中搜索嵌套元素。但是' jQuery.filter'只通过已存在的数据。从我的猜测过滤器会更快,但我看到很少的性能测试,发现更好。不管哪种方式应该更好,有人可以帮我解决这个问题吗?
我们说我有这个插件: 通过元素搜索的方式会更快。
$.plugIn = {
$appForm: $("form.app-editing-page"), // means both editing and posting
$appFormEdit: $("form.app-edit"),
$appFormPost: $("form.app-post"),
$allInputs: $("form.app-post input"),
checkPerform: function(){
var visibleInputs = $.plugIn.$appForm.find("input:visible"); // way 1 with find
var visibleInputs2 = $.plugIn.$allInputs.filter(":visible"); // way 2 with filter from cached
}
}
在我看来,过滤器应该更快,因为它只从缓存的项目看起来。但任何人都可以帮助解决这个问题,了解性能。
另一件事是,它是声明插件和变量的正确方法;
答案 0 :(得分:1)
$.plugIn = {
$appForm: [], //$("form.app-editing-page"), // means both editing and posting
$appFormEdit: [], //$("form.app-edit"),
$appFormPost: [], //$("form.app-post"),
$allInputs: [], //$("form.app-post input"),
checkPerform: function() {
$.plugIn.$appForm = $(".app-editing-page"); // faster than "form.class"
$.plugIn.$appForm = $(".app-post");
$.plugIn.$allInputs = $.plugIn.$appForm.find("input"); // a lot more faster than complex queries.
var visibleInputs = $.plugIn.$allInputs.filter(":visible"); // faster way
}
}