jQuery切换选择器,这是更好的

时间:2011-04-18 19:16:04

标签: jquery jquery-selectors toggle

我经常在#form#edit之间切换。哪个选择器更快。使用第一个或第二个选择器更好吗?

var $form = $('#form');
var $edit = $('#edit');
$form.toggle();
$edit.toggle();

$('#form, #edit').toggle();

4 个答案:

答案 0 :(得分:2)

怎么样:

$formEdit = $('#form, #edit');
$formEdit.toggle();
//than you can use the combo selector later as well

答案 1 :(得分:2)

简短回答:这取决于。

你打算在另一点再次做这个操作,还是这是一次性的事情?如果它是一次性的话,几乎没有区别,但几乎总是使用内置函数是最快的:

$('#form').add('#edit').toggle();

如果您要再次引用这些相同的项目,请将它们保存到变量中,如第一个示例中所示,或者如Neal建议的那样,将它们保存到同一个变量中。

答案 2 :(得分:2)

“最快”的解决方案是根本不使用.toggle(),而是使用.css()

$formEdit = $('#form, #edit');
if ($formEdit.css(':hidden')) {
    $formEdit.css('display', 'block');
} else {
    $formEdit.css('display', 'none');
}

资源:http://www.learningjquery.com/2010/05/now-you-see-me-showhide-performance

答案 3 :(得分:1)

第二个:$('#form, #edit').toggle();是有效的方式。