jQuery中$this和$(this)的区别介绍(一看就懂)

当我们使用jQuery进行DOM操作时,经常会看到使用$this或$(this)的情况。这两者的区别很容易混淆,下面将详细介绍它们的区别。

$this

首先,让我们来看一下$this。$this是一个变量名,它表示当前jQuery对象,通常用在事件处理函数中。例如,当用户单击页面上的某个元素时,我们可以使用下面的代码来获取当前元素的ID:

$('button').click(function() {
  var id = $this.attr('id');
  console.log(id);
});

在这个例子中,我们将一个click事件句柄传递给button元素。当用户单击按钮时,该句柄将被触发。在句柄函数内部,我们使用$this来引用当前按钮,然后使用.attr()方法获取其ID。

$(this)

现在让我们来看看$(this)。$(this)是一个jQuery方法,它是指当前DOM元素的jQuery包装器对象。在事件处理函数中,我们可以使用$(this)来引用当前元素的jQuery包装器对象。例如,以下代码将为所有的a元素添加一个单击事件,每次单击时都会隐藏该元素:

$('a').click(function() {
  $(this).hide();
});

在这个例子中,我们使用$('a')来选择所有的链接。当用户单击任何链接时,该句柄将被触发。在句柄函数内部,我们使用$(this)来引用当前链接,然后使用.hide()方法将其隐藏起来。

区别总结

区别在于,$this是一个变量名,它表示当前jQuery对象。而$(this)是jQuery库中的一个函数,它返回一个包含当前元素的jQuery包装器对象。

在事件处理函数中,使用$this和$(this)都可以引用当前元素。但是,使用$this只能访问当前元素的原生DOM对象,而$(this)返回的是当前元素的jQuery对象,你可以使用jQuery提供的许多方法和属性来操作它。

另外值得一提的是,$this只能在事件处理函数中使用,因为只有在事件触发的时候,jQuery对象才会被创建。在其他上下文中,$this是未定义的。

示例

下面我们来举两个具体的例子:

1.使用"this"获取指定元素的属性值

$('.box').each(function() {
  var title = $(this).attr('title');
  console.log(title);
});

在这个例子中,我们使用了.each()方法选择所有的带有class名为"box"的元素,并且为它们添加一个函数。在函数内部,我们使用$(this)指向当前的.box元素,并使用.attr()方法获取它的title属性。

2.给指定的按钮添加背景色

$('button').click(function() {
  $this = $(this);
  $this.css('background-color', 'red');
});

在这个例子中,我们为所有的button元素添加了一个单击事件。当单击按钮时,句柄函数将被触发。在句柄函数内部,我们将$(this)的值存储在变量$this中。然后使用$this来引用当前按钮,并使用.css()方法改变它的背景颜色。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery中$this和$(this)的区别介绍(一看就懂) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • thinkphp5实用入门进阶知识点和各种常用功能代码汇总

    ThinkPHP5实用入门进阶知识点和各种常用功能代码汇总 1. 知识点概览 ThinkPHP是一款基于封装的MVC模式的PHP开发框架,着重于快速开发和简化企业级应用开发,并综合了PHP生态中众多优秀的工具和类库。下面是ThinkPHP5实用入门进阶知识点和各种常用功能代码的汇总: 1.1 控制器 控制器是ThinkPHP中的MVC模式中的C,是应用程序的…

    jquery 2023年5月27日
    00
  • jquery动态加载js三种方法实例

    下面来详细讲解“jQuery动态加载JS三种方法实例”的完整攻略。 1. 什么是动态加载JS? 动态加载JS指的是在当前页面中使用JS动态地加载另一个JS文件。这个过程中主要使用jQuery中的getScript()方法。 2. getScript()方法 在jQuery中,getScript()方法可以帮助我们通过JavaScript异步地加载一个脚本,并…

    jquery 2023年5月27日
    00
  • Underscore.js _.indexBy函数

    Underscore.js是一款JavaScript工具库,它提供了一系列常用的函数和方法,方便我们进行数据处理和逻辑操作。其中,_.indexBy函数是一种非常实用的函数,可以将一个数组或对象数组转换成一个以特定字段为key的对象。 1. 函数格式 _.indexBy函数的格式如下: _.indexBy(list, iteratee, [context])…

    jquery 2023年5月12日
    00
  • jQuery UI tabs禁用选项

    以下是关于 jQuery UI Tabs 禁用选项的详细攻略: jQuery UI Tabs 禁用选项 禁用选项卡允许您禁用选项卡,使其无法单击或选择。这对于需要动态控制选项卡的可用性的应用程序非常有用。 语法 $(selector).tabs("disable", index); 参数 index:要禁用的选项卡的索引。 示例一:禁用第…

    jquery 2023年5月11日
    00
  • Jquery中request和request.form和request.querystring的区别

    对于Jquery中的request、request.form和request.querystring,它们之间的区别可以从请求方式、数据类型以及获取方式三个方面进行详细讲解。 请求方式 request: request是Jquery中的Ajax请求对象,它可以用于发送各种类型的请求,包括get、post等; request.form: request.for…

    jquery 2023年5月28日
    00
  • 基于jQuery实现最基本的淡入淡出效果实例

    针对“基于jQuery实现最基本的淡入淡出效果实例”的完整攻略,我分以下几个部分进行讲解: 1. 确认jQuery库的引入 首先需要确认在 HTML 页面的 head 中是否引入了 jQuery 库,如果没有引入的话可以通过以下代码进行引入: <script src="https://cdn.bootcss.com/jquery/3.4.1/…

    jquery 2023年5月28日
    00
  • jQWidgets jqxDropDownList高度属性

    jQWidgets jqxDropDownList高度属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包格等。jqxDropDownList是jWidgets一个组,用于实现下拉列表功能。height是jqxDropDownList的一个属性,用于设置下拉列表的高度。本文详细介绍height属性,并提供两个示例。 he…

    jquery 2023年5月9日
    00
  • JQuery中Ajax()的data参数类型实例分析

    JQuery中Ajax()的data参数类型实例分析 在JQuery中通过Ajax()方法可以轻松地向服务器发送HTTP请求并获取返回数据,其中的data参数用于指定发送到服务器的数据。本文将详细讲解data参数的类型及使用实例。 data参数类型 字符串类型 以字符串形式直接发送数据,如: $.ajax({ url: "test.php&quot…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部