jquery – $(这)查询dom?

前端之家收集整理的这篇文章主要介绍了jquery – $(这)查询dom?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道如果传递给jQuery函数实际上导致它在DOM中搜索它.这个问题有一个具体的背景.

假设我有:

$('#foo').click(function(){
  var id = $(this).attr('id');
  var someVal = $(this).data('someVal');
}

将jQuery查询DOM以提供其功能,还是从JavaScript对象读取并从JavaScript对象中获取的所有信息?

并且有一个性能差异:

$('#foo').click(function(){
  var elem = $(this);
  var id = elem.attr('id');
  var someVal = elem.data('someVal');
}

解决方法

在这种情况下,它不会查询DOM. $()使用jQuery包装对象包装这个(或者其他任何东西).

通过缓存:

var $this = $(this);
 // you will see code have a $before or after a variable ( $this,this$,etc )
 // signifying it is a jQuery wrapped object

你的性能保存只用jQuery一次包装.而不是让它进入jQuery并重新包装它.缓存它是很好的编码习惯.

注意:当然,如果你有$(‘#whatever’),它会查询DOM,因为你提供了一个选择器来检索它,然后用jQuery包装它.所以如果你一遍又一遍地重复使用它,那么保存它也是有道理的! var $whatever = $(‘#whatever’);

猜你在找的jQuery相关文章