javascript – jquery这对$(这个),甚至可能是这个

我经常会看到在 jquery中使用关键字this的例子.有时我看到它与$和括号一起使用,其他时候没有.我以为我看到它与每一个都使用了.

所以,

var id = this.attr('id');

 var id = $(this).attr('id');

 var id = $this.attr('id');

这些都一样吗?有优先的方式吗?这是一个JavaScript的东西和$(这)一个jQuery的东西?如果是这样,这个秋天在哪里?

我知道这可能是一个全新的问题,但是我还没有得到简单的,这本身就是工作.我只能得到$(这)工作.我不知道我是否做错了事情,或者如果我一直在读错误的例子.

解决方法

这是一个JavaScript的东西.它指的是一个函数正在运行的“上下文”.对于大多数事件处理程序,它是正在侦听事件的(“raw”)DOM元素.在其他情况下,这意味着其他的东西; Googling“这在JavaScript”可能是启发.

我说这是“原始”DOM元素,因为jQuery通常用于在jQuery包装器中包装纯DOM元素,因此您可以使用像attr这样的jQuery方法,而不是常用的(getAttribute,setAttribute等).这个包装是用$函数完成的,那就是你看到$(this)的地方.例如:

this.getAttribute("href")
/* or */ someElement.getAttribute("href")

是相同的

$(this).attr("href")
/* or */ $(someElement).attr("href")

$this或$$只是一个变量名.但是,常常做一个任务

var $this = $(this);

这样做的原因是为了避免不断地调用$函数,这样做有点贵,因为它每次都创建一个新的jQuery包装器对象.如果将包装的元素存储在变量中,则效率稍微提高.

在极少数情况下,这可能已经是一个jQuery包装器.经常出现在我身上的情况是在编写jQuery插件时.在这种情况下,您可以直接执行像this.attr(“id”)这样的事情,而不是首先包装它,因为它已经被包装了.在通常情况下(事件处理程序,$.each等),包装器是必需的.

相关文章

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