`

js jquery this

    博客分类:
  • js
 
阅读更多

今天遇到一个问题,在使用js创建对象时,里面的方法内包含function时,在内部的function里无法调用对象的方法,this无法穿透,this在方法中可以使用,但在往下一层就不可以,解决办法是在方法里使用var obj=this,然后在内部的function里使用obj.fun就可以调用对象的属性方法。

 

<body>
<div class="">
<a href="javascript:void(0);" id="testFirst">上层</a>
<a href="javascript:void(0);" id="testSec">第二层</a>
<a href="javascript:void(0);" id="testSolve">解决</a>
</div>
 
</body>
<script type="text/javascript">
var jsObject={
 
str:"1qaz2wsx?asdfghjkl.",
testFirstThis:function(){
alert(this.str); -----------------1qaz2wsx?asdfghjkl.
},
testSecThis:function(){
$(document).ready(function(){
alert(this.str);----------------undefined
});
},
testSolve:function(){
var obj=this;
$(document).ready(function(){
alert(obj.str);---------------------------1qaz2wsx?asdfghjkl.
});
}
 
}
 
$(document).ready(function(){
$("#testFirst").click(function(){
jsObject.testFirstThis();
});
$("#testSec").click(function(){
jsObject.testSecThis();
});
$("#testSolve").click(function(){
jsObject.testSolve();
});
 
});
 
</script>

 

 

 

 

 

 

总结与实例:

 

 

<body>

 

<div>

<p class="p1" style="background-color:orange;"> click</p>

<p class="p3" style="background-color:yellow;" onclick= "fun();" action-str="ssss"> click</p>

<p class="p2" style="background-color:green;" onclick= "funClick(this);" action-str="ssss"> click</p>

</div>

 

</body>

<script type="text/javascript">

 

 

//jquery 绑定事件函数中的this指DOM元素,$(this)指该DOM元素的jquery对象

$(document).ready(function(){

 

$('.p1').on('click',function(){

alert(this);

var innerHTML = $(this).html();

alert(innerHTML);

})

 

 

});

 

// js的this所在的函数是哪个对象的方法调用,该对象就是this所指向的对象
 
 
 
 
 
var fun = function(){
 
debugger;
 
alert(this);     //由于包含this的函数fun是全局的window里的函数,所以this指向window
 
//alert(this.fun()); // 该处即可调用到fun
 
 
 
}
 
 
 
 
 
var funClick = function(v){
 
debugger;
 
var strHtml = $(v).html();//onclick绑定事件传入的this,调用onclick的对象是A标签,所以this指向DOM元素,,脚本引擎生成了一个标签实例对象的匿名成员方法,而onclick指向这个方法
 
var str = $(v).attr("action-str");
alert(str);
 
 
 
} 
 

 

 

 

 

分享到:
评论

相关推荐

    js原生态函数中使用jQuery中的 $(this)无效的解决方法.docx

    js原生态函数中使用jQuery中的$(this)无效的解决方法 在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发...

    jquery1.4.js + jquery-validation.min.js

    2. **$.proxy()函数**:这个新函数允许开发者绑定一个函数到特定的上下文,解决了JavaScript中this关键字的问题,使得回调函数的执行环境更加可控。 3. **$.each()增强**:现在可以对非数组对象进行迭代,这极大地...

    jquery-1.7.1-vsdoc.js jQuery JavaScript Library v1.7.1

    你懂的,支持 vs2010 jquery 1.7.1 智能提示 /* * This file has been generated to support Visual Studio IntelliSense. * You should not use this file at runtime inside the browser--it is only * intended ...

    jquery.corner.js最新版本【2.9】

    操作步骤:引入jquery-1.4.2.min.js(1.3以上版本就可以了)和jquery.corner.js 在script区域写入语法【打开官方网站,在每个样式的图片上的语法,注意this代表当前对象标签,换句话说,你可以把this换成一个其他...

    Javascript jquery 实现 拖拽, 和吸附功能

    在JavaScript和jQuery的世界里,实现元素的拖拽(Draggable)和吸附(Docking)功能是一项常见的需求,尤其是在创建交互式用户界面时。本篇将深入讲解如何利用这两种技术来增强网页的动态性和用户体验。 首先,...

    jquery.countdown.js自定义倒计时代码.zip

    2. `js`目录:包含了`jquery.countdown.js`本身和其他可能的JavaScript文件。主要文件`jquery.countdown.js`是实现倒计时功能的核心代码,开发者可以通过阅读源码理解其工作原理。 3. `img`目录:可能包含了一些与...

    jquery-3.1.1.min_javascript_jquery_

    jQuery 是一个广泛使用的开源 JavaScript 库,由 John Resig 在2006年创建。它的核心理念是“写得更少,做得更多”(Write Less, Do More),通过提供简洁的API,让开发者能够更加高效地处理网页中的DOM操作、事件...

    jquery.scrollTo.js网页滚动插件下载.rar

    jQuery.scrollTo.js是基于流行的JavaScript库jQuery开发的一款插件,它的主要功能是允许网页内容按照预设的方式进行平滑滚动。这款插件支持多种滚动方式,包括但不限于单向滚动、多方向滚动以及根据元素定位的滚动,...

    jquery相关插件js

    《jQuery相关插件JS详解与应用》 在Web开发领域,jQuery是一个不可或缺的JavaScript库,以其简洁、易用的API赢得了广大开发者喜爱。本篇将深入探讨jQuery的相关插件及其实现原理,帮助读者理解如何将这些插件融入到...

    关于jQuery-Ui的引用文件

    3) **jQuery UI JavaScript 文件**:接下来,引入 jQuery UI 的 JavaScript 文件。文件名通常为 `jquery-ui.min.js` 或相应版本号的文件。同样将其放置在页面的 `&lt;head&gt;` 或 `&lt;body&gt;` 标签底部,但需确保在引用 CSS ...

    js框架,类似jquery

    jQuery作为一款经典且广泛使用的JS库,引领了链式语法和简化AJAX操作的潮流。本篇文章将深入探讨JavaScript框架,特别是那些与jQuery类似的特性,并介绍如何使用这些特性进行更有效的前端开发。 首先,链式语法是...

    jquery js tab效果示例下载(强烈推荐)

    标签“jquery js tab”表明这个示例不仅包含了jQuery的使用,还涉及到了JavaScript的事件处理和DOM操作,这些都是前端开发者必备的技能。这个压缩包中的“中国java下载站.url”可能是一个链接到更多资源或教程的快捷...

    jquery.address.js

    1. 锚点链接处理:jQuery.address.js可以监听页面中的锚点链接,通过JavaScript控制页面滚动到相应的位置,而无需浏览器重新加载页面。这对于内容丰富的单页应用(SPA)来说尤其有用,可以实现平滑的页面导航。 2. ...

    Jquery+Jquery.metadata.js

    在IT行业中,jQuery是一个广泛使用的JavaScript库,它极大地简化了DOM操作、事件处理、动画制作以及Ajax交互。jQuery.metadata.js是jQuery的一个插件,它扩展了jQuery的功能,允许开发者从HTML元素中提取元数据...

    Jquery 1.6.4 js And Jquery 1.4 API 中文

    jQuery 是一个流行的 JavaScript 库,它极大地简化了 JavaScript 的 DOM 操作、事件处理、动画制作以及Ajax交互。这里我们主要讨论的是 jQuery 1.6.4 和 jQuery 1.4 API 的中文版本,这两个版本虽然在功能上有所不同...

    JS随意滑动图片展示(JQuery)

    在本文中,我们将深入探讨如何使用JavaScript和JQuery库创建一个动态、流畅的图片展示功能,就像百度图片搜索那样。这种交互式图片展示系统能够提供卓越的用户体验,让用户可以轻松浏览和放大感兴趣的照片。 首先,...

    jquery.colorpicker 下载资源

    `jQuery ColorPicker` 是一个功能强大的JavaScript插件,用于在Web应用程序中实现颜色选择器。它为用户提供了一个直观、易于使用的界面来选择颜色,通常用于网页设计、表单输入或者任何需要颜色选择的场景。这个插件...

    jquery-1.7.1.min-vsdoc.js

    当在项目中同时引入"jquery-1.7.1.min.js"和"jquery-1.7.1.min-vsdoc.js"时,浏览器只会执行"jquery-1.7.1.min.js"中的实际JavaScript代码,而"jquery-1.7.1.min-vsdoc.js"则作为开发工具,仅在IDE内部提供帮助信息...

    jQuery UI Multiselect (jQuery UI 多选框)

    首先,确保在项目中引入了jQuery和jQuery UI的核心库,然后引入jQuery UI Multiselect的CSS和JS文件。接下来,可以按照以下步骤创建和初始化多选框: ```html &lt;!-- HTML结构 --&gt; &lt;option value="1"&gt;Option 1 ...

    jQuery1-8-2.js和jqueryAPI

    总结,jQuery 1.8.2.js是jQuery的一个经典版本,提供了丰富的功能和良好的浏览器兼容性,而jQuery API则是一套强大且易用的工具集,使得JavaScript开发变得更加高效。理解和掌握这些知识点,对于任何前端开发者来说...

Global site tag (gtag.js) - Google Analytics