Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干-DOM元素更有效的作用域查找方法是什么?_Javascript_Jquery_Backbone.js_Backbone Views - Fatal编程技术网

Javascript 主干-DOM元素更有效的作用域查找方法是什么?

Javascript 主干-DOM元素更有效的作用域查找方法是什么?,javascript,jquery,backbone.js,backbone-views,Javascript,Jquery,Backbone.js,Backbone Views,我知道有很多方法可以在视图中执行DOM查询: $(view.el).find("#element"); $(“#element”, view.el); view.$("#element"); 哪种方法是最好的,为什么?始终使用查找上下文选择器 “的确,在可能的情况下,您应该始终尝试基于上下文运行您的选择,但是记住,当您将上下文传递给jQuery构造函数时,它会创建一个额外的函数调用,这一点很有用。 jQuery的内部运行content.find(selector),因此,如果您使用的页面结

我知道有很多方法可以在视图中执行DOM查询:

$(view.el).find("#element");

$(“#element”, view.el);

view.$("#element");

哪种方法是最好的,为什么?

始终使用查找上下文选择器

“的确,在可能的情况下,您应该始终尝试基于上下文运行您的选择,但是记住,当您将上下文传递给jQuery构造函数时,它会创建一个额外的函数调用,这一点很有用。 jQuery的内部运行content.find(selector),因此,如果您使用的页面结构可能不会从使用上下文中受益匪浅,那么您可以从技术上跳过该步骤。下面是我所说的示例。”

资料来源:(提示6)

是的,这篇文章很旧,但仍然是真的


TL;DR版本:上下文选择器调用
.find()
函数。使用
.find()
直接减少调用次数。

始终使用查找上下文选择器

“的确,在可能的情况下,您应该始终尝试基于上下文运行您的选择,但是记住,当您将上下文传递给jQuery构造函数时,它会创建一个额外的函数调用,这一点很有用。 jQuery的内部运行content.find(selector),因此,如果您使用的页面结构可能不会从使用上下文中受益匪浅,那么您可以从技术上跳过该步骤。下面是我所说的示例。”

资料来源:(提示6)

是的,这篇文章很旧,但仍然是真的


TL;DR版本:上下文选择器调用
.find()
函数。使用
.find()
直接减少调用次数。

Bakcbone保留对视图el的引用,因此最后一个将是视图的速记版本。$el.find(“#元素”)

我认为这意味着最后一个是最快的,因为它只查看el而不是整个DOM,并且仍然使用find


看看这个链接

Bakcbone保留对视图el的引用,因此最后一个将是视图的简写版本。$el.find(“#element”)

我认为这意味着最后一个是最快的,因为它只查看el而不是整个DOM,并且仍然使用find


看看这个链接

视图。$(…)
视图。$el.find(…)
(当然还有一个额外的函数调用包装):
$:函数(选择器){返回这个。$el.find(选择器);}
。而
$x.find()
$(x,el)
之间的差异几乎肯定会在其他地方被提及。因此,合并Ray和Karl的答案最好的方法是
查看。$(“#元素”)?可能是最惯用的主干,但最好是高度主观的。对于优化,
view.$(“#元素”)
$(view.el).find(“#元素”)
是等效的(相同的东西,但一个写起来更短)。所以你决定你喜欢什么。你要寻找的答案是:不要使用第二种方法。好的,非常感谢,我想我会给@Rayweb_on一个公认的答案,因为他先写了这些行,但是为了记录在案,Karl的答案也是很好的
视图。$(…)
视图相同。$el.find(…)
(当然还有一个额外的函数调用包装器):
$:函数(选择器){返回这个。$el.find(选择器);}
$x.find()
$(x,el)
之间的区别几乎肯定会在其他地方讨论。因此,合并Ray和Karl的答案最好的方法是
查看。$(“#元素”)
?可能是最常用的主干,但最好是高度主观的。为了优化,
视图。$(“#元素”);
$(view.el)。find(“#元素”);
是等效的(相同的东西,但一个写起来更短)。所以你决定你喜欢什么。你要找的答案是:不要使用第二种方法。好的,非常感谢,我想我会给@Rayweb_on一个公认的答案,因为他先写了那几行,但是为了记录在案,Karl的答案也很好
view.$("#element"); /// is like I said is just the same that :
view.$el.find('#element');