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

前端之家收集整理的这篇文章主要介绍了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相关文章