最近在使用jQuery的时候,发现有时候直接通过this来调用jquery所特有的方法或属性的时候会报错误:对象不支持此属性或方法。比如下面的程序,红色的代码段运行正常,蓝色的代码段运行报错。
<script type="text/javascript">
$("img").each(function(i){
this.src="img/slide-"+i+".jpg";
});
$("div").each(function(){
this.toggleClass("box");
});
</script>
于是用下面直接返回this和$(this)的方式测试了一下,
<script type="text/javascript">
$("#btn").bind("click",function(){
alert(this);
alert($(this));
});
</script>
返回结果:
[object HTMLInputElement]
[object Object]
可见,this,表示当前的上下文对象是一个html对象,可以调用html对象所拥有的属性,方法。$(this),代表的上下文对象是一个jquery的上下文对象,可以调用jquery的方法和属性值。
由此可见,上面红色代码.src本身就是html对象,所以可以写成this.src,蓝色代码.toggleClass是jQuery对象,所以写成this.toggleClass肯定会报错了,$(this).toggleClass才是正确的写法。
===================================================================
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。
=====================================================================
对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而get(n)和索引返回的是dom元素对象。对于jquery对象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三个<div>元素的内容。有如下两种方法:
$("div").eq(2).html(); //调用jquery对象的方法
$("div").get(2).innerHTML; //调用dom的方法属性
=========================================================================
集合处理功能
对于jquery返回的集合内容无需我们自己循环遍历并对每个对象分别做处理,jquery已经为我们提供的很方便的方法进行集合的处理。
包括两种形式:
$("p").each(function(i){this.style.color=['#f00','#0f0','#00f']})
//为索引分别为0,1,2的p元素分别设定不同的字体颜色。
$("tr").each(function(i){this.style.backgroundColor=['#ccc','#fff'][i%2]})
//实现表格的隔行换色效果
$("p").click(function(){.html())})
//为每个p元素增加了click事件,单击某个p元素则弹出其内容
相关推荐
主要介绍了实例讲解JQuery中this和$(this)的区别,this表示当前的上下文对象是一个html对象,可以调用html对象所拥有的属性和方法,$(this),代表的上下文对象是一个jquery的上下文对象,可以调用jquery的方法和属性值,...
js原生态函数中使用jQuery中的$(this)无效的解决方法 在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发...
1.JQuery this和$(this)的区别 相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢? 首先来看看JQuery中的 $() 这个符号,实际上这个符号在JQuery中相当于JQuery(),即$...
在JavaScript和jQuery的世界里,`this` 和 `$(this)` 是两个经常被提及的关键概念,它们在处理DOM操作和事件处理中扮演着重要的角色。理解它们的区别和应用场景对于编写高效、简洁的jQuery代码至关重要。 首先,`...
下面我将用简洁的语言详细讲解jQuery中$this和$(this)的区别,并通过一个具体的例子来加深理解。 首先,我们需要明确this关键字在JavaScript和jQuery中的含义。在JavaScript中,this关键字指的是当前函数的上下文...
本文将对 jQuery 中的 $(this).index() 和 $.each 方法的使用进行详细介绍,并结合示例解释其在实际开发中的应用。 首先来看 $(this).index() 方法。在 jQuery 中,$(this) 常用于引用当前事件的元素对象,而 ....
总结来说,jQuery的选择方法提供了丰富的选择DOM元素的方式,而`$(this)`则帮助我们在事件处理中定位到触发事件的元素,两者结合使用,能够实现精准且高效的DOM操作。对于任何前端开发者来说,掌握这些基本技能是必...
jquery.each 方法 方法一 $("img").each(function(i... //$(this)==数组中的每一个数组(如果数组是对象,就是对象) }); 方法三 应有场景有点不一样 this.each(function(){ }) 扩展jQuery对象方法 应该是 j
在JavaScript和JQuery中,`this` 和 `$(this)` 是两个不同的概念,它们在功能和用法上有所差异。了解这些差异对于编写高效的JQuery代码至关重要。 首先,`this` 是JavaScript中的一个关键字,它在不同的上下文中...
在JavaScript中,`$(this)` 是 jQuery 对象的一个常见用法,它通常代表当前上下文中的元素。然而,在某些情况下,特别是在涉及到异步操作,如 `setTimeout` 或 `$.ajax` 等函数内部,`this` 的指向会改变,不再指向...
为了满足这些特殊需求,jQuery允许用户自定义添加方法到它的核心功能中,这就包括自定义添加"$"符号的方法。以下我们将详细探讨如何实现这一过程以及解决可能出现的"$"冲突问题。 1. **自定义添加 "$" 方法** 在...
在JavaScript的jQuery库中,`$(this)`是一个非常重要的对象,它代表当前上下文中的DOM元素。`$(this).attr()`和`$(this).val()`是两个常用的jQuery方法,用于处理DOM元素的属性(attributes)和值(values)。下面将...
在Vue项目中,你可以通过全局安装jQuery,然后在Vue组件内使用`this.$ajax`(需要在Vue原型链上挂载jQuery)或者在Vue实例的`beforeCreate`或`created`钩子中初始化jQuery并进行AJAX请求。 下面是一个使用jQuery ...
在JavaScript的开发环境中,尤其是当使用多个库或框架时,比如jQuery和其他JavaScript库(如Prototype、MooTools等),可能会遇到函数名或选择器符号`$`的冲突问题。这是因为这些库都倾向于使用`$`作为主要的函数或...
### JavaScript与jQuery实现动态粒子效果详解 #### 一、引言 在现代Web开发中,动态粒子效果是一种非常受欢迎的设计元素,它不仅能够为网站增添视觉吸引力,还能够提升用户体验。通过结合JavaScript与jQuery框架,...