关于变量和选择器的jQuery问题

ale*_*lex 6 javascript jquery

最近,我一直在努力加快性能(有时它有助于可维护性)

var objectToReference = $('div .complicated #selector ul:last');
Run Code Online (Sandbox Code Playgroud)

objectToReference真的是什么呢?有时事情会让我感到困惑,所以我已经回到了使用完整的选择器,它已经奏效了.

那么变量是否包含引用,指针等(我不确定这些术语的确切定义)

谢谢

Bar*_*itz 20

许多人在创建这样的变量时使用的最佳实践是以$开头命名,以表明它是一个jquery对象.所以你可以命名变量$ o,你可以在它之后直接调用其他jQuery链函数,而不必在变量周围放置$().

$o.hide();
Run Code Online (Sandbox Code Playgroud)

最好从您操作区域的周围元素开始,以避免必须搜索整个文档.例如,要获取文档的单个部分中的所有链接(无需搜索整个文档):

var $o = $('#mysection');
var $links = $('a', $o); // equiv to $o.find('a')
Run Code Online (Sandbox Code Playgroud)

最后,通过jQuery传回jQuery对象永远不会伤害:

$o === $($o)
Run Code Online (Sandbox Code Playgroud)

这有一个很好的副作用 - 你可以编写一个接受以下任何一个参数的函数:一个选择器,一个元素或一个jQuery对象:

function myFunc(e) {
    var $e = $(e);
}
// All of the following will work:
myFunc('#mysection');
myFunc(document.getElementById('mysection'));
myFunc($('#mysection a'));
Run Code Online (Sandbox Code Playgroud)

  • 哦NO!现在我的JS看起来像perl或php.好的提示:P (2认同)