jquery对象-jQuery对象中,this指向哪个对象

问题描述

jQuery对象中,this指向哪个对象
 <script>
$.fn.extend({
    im : function(){
            console.log($(this).attr('id'));
            console.log(this == document.body);
            console.log(this.nodeName);
        }
});

$('body').im();
</script>


这样一段JS代码,this 应该是指向 body,但是,为什么
this == document.body 是false
this.nodeName 是undefined

解决方案

this指向实例对象,也就是body,但是jquery在$的时候,进行了init处理,返回后的this是个数组对象。和页面中的this不是一回事
所以用DOM方式访问应该是
this[0]==document.body 和this[0].nodeName

解决方案二:

这里的this 指的就是
{
im : function(){
console.log($(this).attr('id'));
console.log(this == document.body);
console.log(this.nodeName);
}
} 对象

解决方案三:

这里的this指的是jquery的元素对象。即$("#xxxx")这个对象,要取到dom对象需要this[0]。

解决方案四:

this指向jQuery包装过的对象,并不是DOM对象,要通过this[0]转换后才会是DOM对象

时间: 2024-11-03 01:48:30

jquery对象-jQuery对象中,this指向哪个对象的相关文章

C++中指向对象的常指针与指向常对象的指针详解_C 语言

指向对象的常指针 将指向对象的指针变量声明为const型,并使之初始化,这样指针值始终保持为其初始值,不能改变. 复制代码 代码如下: Time t1(10,12,15),t2;Time * const ptr1=&t1;ptr1=&t2; 定义指向对象的常指针的一般形式为 类名    *    const    指针变量=对象地址; 注意应该在定义指针变量时使之初始化 指向对象的常指针变量的值不能被改变,即始终指向同一个对象,但可以改变其所指向对象中的数据成员(非const型)的值. 往

从零开始学习jQuery (五) jquery事件与事件对象_jquery

一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解.  二.前言 本篇文章是至今为止本系列内容最多的一篇, 足以可见其重要性.  大家反映要多列举示例. 我会在时间允许的情况下尽量多列举示例. 真正的投入生产使用的实例暂时还无法加入到文章中, 但是可能最后我会列举一些作品供大家借鉴. 另外本人水平有限, 因为我不是UI设计师. 文章可能有错误的地方, 希望大家帮忙指出, 一起学习一起进步. 在技术的世界里我们是没

jquery 将dom对像转换成数组对象

jquery 将dom对像转换成数组对象 1.jQuery对象(this指向)其实就是一个键值对数据集合,一张普通的hashTabel.集合中,自定义键名可以是字母,也可以是整数,索引方式{name1: "value1", name2: "value2"}[name2]与{0: "value1", 1: "value2"}[1]不存在任何差异,后者数据结构与数组(Array)没有任何关系,那来的"[document]

对象-jQuery autocomplete控件怎么处理json??

问题描述 jQuery autocomplete控件怎么处理json?? 我的json返回来的是一个对象数组,我要显示的是对象的其中一个属性,但同时另一个属性也要使用,具体该怎么处理啊. 解决方案 jquery的autocomplete 智能提示 控件jquery-autoComplete 处理返回的json对象问题jQuery autocomplete 处理json 返回值形式的demo 解决方案二: autocomplete这么多,你用的哪个?一般有配置怎么返回需要的数据,你使用的属性增加到

jQuery将表单序列化成一个Object对象的实例_jquery

验证表单的时候经常需要获取表单中name='***'的元素的值,然后加以判断.jQuery中提供了jQuery.serizlizeArray来将表单序列化成一个数组.尽管如此,数组还是不方便我们操作,我需要讲表单序列化成一个对象.这样更方便于我们操作.  下面是代码: /** * @author gaohuia */ (function($){ $.fn.extend({ serializeObject:function(){ if(this.length>1){ return false; }

jQuery根据ID、CLASS、等获取对象的实例_jquery

在jquery中,你能够通过逗号,来分隔字符选择多个选择. 例如: $(.class1, .class2, #id1)在以上的例子中,将会选择含有类名为class1,和class2及id为1的所有元素. Jquery实例: 在以下的例子中,有类名为p1和类名为p2 和id 为div3 的所有元素将会动态的添加一个红色的边框. <html> <head> <title>select mutiple elements example</title> <sc

JS 遍历对象 jQuery遍历对象

jquery for 循环遍历对象的属性: //对象的定义如下: var person={id:"1",name:"springok",age:25}; for( p in person){ alert(person[p]); } 结果:1 springok 25 依次弹出 jQuery 中each() 方法遍历对象属性 var person={id:"1",name:"springok",age:25}; 遍历数组 jQue

SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法

1.SpringMVC中通过@ResponseBody返回对象,作为JQuery中的ajax返回值 package com.kuman.cartoon.controller;   import java.util.Map;   import javax.servlet.http.HttpServletRequest;   import org.apache.commons.io.filefilter.FalseFileFilter; import org.slf4j.Logger; import

jQuery移动web开发中的页面初始化与加载事件_jquery

页面初始化事件(pagebeforecreate.pagecreate)Jquery Mobile会自动基于page"内的增强的约定自动初始化一些插件.例如:给一个input输入框约定了type=range属性会自动生成一个自定义滑动条.这些自动初始化的行为是受"page"插件控制的,它在执行前后部署部署事件,允许你在初始化前后操作页面,或者甚至自己提供初始化行为,禁止自动初始化.注以下的页面初始化事件在每个"page"只被触发一次,与每次页面在显示或者隐