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

最近,我一直在努力加快性能(有时它有助于可维护性)
var objectToReference = $('div .complicated #selector ul:last');

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

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

谢谢

解决方法

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

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

var $o = $('#mysection');
var $links = $('a',$o); // equiv to $o.find('a')

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

$o === $($o)

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

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

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...