JavaScript中的this妙用实例分析


Posted in Javascript onMay 09, 2020

本文实例讲述了JavaScript中的this妙用。分享给大家供大家参考,具体如下:

JavaScript关键字this始JS脚本能够根据使用这个关键字的上下文将值传递给函数。

我们先来看如下一个网页,在用户单击链接之后,弹出一个alert框,然后再转到href属性所指的网页

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript中的this妙用</title>
  <script type="text/javascript" src="js/script.js"></script>
</head>
<body>
  <p style="text-algin:center;">
    你好,点击这里去<a id="redirect" href="http://www.mybry.com/obj/store/list.html" rel="external nofollow" >旧物商店</a>
  </p>
</body>
</html>

JS:

window.onload = initAll;
function initAll(){
  document.getElementById("redirect").onclick = initRedirect;
}
function initRedirect(){
  alert("这是我创建的旧物商城,欢迎访问!");
  window.location = this;
  return false;
}

你可能会主要到,代码中并没有引用特定的网页——这是this关键字的作用之一。this替我们完成的工作之一是从HTML链接获得URL(也就是a标签的href属性)。由于采用这种方式,如果以后脚本改为指向其他的页面而不是旧物商店页面,就不必修改JS。实际上,可以让WEB站点上的所有链接都调用这个相同的JS代码,这一行代码都会自动获得相应的href值。

这样写还有一个好处:如果用户的浏览器不理解JavaScript(比如禁用了JS),那么它只会加载HTML页面,而不显示alert提示,当他们点击链接时,会像一般情况下那样加载页面,不会发生错误,没有任何问题。
我们在来看一个switch/case例子,创建如下页面:

JavaScript中的this妙用实例分析

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript中的this妙用</title>
  <script type="text/javascript" src="js/script.js"></script>
</head>
<body>
  <h2>闲置二手图书</h2>
  <form action="#">
    <input type="button" id="Java" value="Java" />
    <input type="button" id="JavaScript" value="JavaScript" />
    <input type="button" id="MySQL" value="MySQL" />
    <input type="button" id="Html" value="HTML5" />
  </form>
</body>
</html>

JS:

window.onload = initAll;
function initAll(){
  document.getElementById("Java").onclick = viewDetail;
  document.getElementById("JavaScript").onclick = viewDetail;
  document.getElementById("MySQL").onclick = viewDetail;
  document.getElementById("Html").onclick = viewDetail;
}
function viewDetail(){
  console.log("this.id="+this.id);
  switch(this.id){
    case "Java" : 
      alert("《Java程序员基本功》这本书是李刚写的,在我的商店售价30元!");
      break;
    case "JavaScript" : 
      alert("《JavaScript语言精粹》这本书是Yahoo的一位工程师写的,在我的商店售价15元!");
      break;
    case "MySQL" : 
      alert("《MySQL入门很简单》这本书附带关盘,这个年代其实没什么卵用了,它在我的商店售价28元!");
      break;
    case "Html" : 
      alert("《HTML5秘籍》这本书是图灵系统的图书,非常值得拥有,它在我的商店售价25元,卖的非常好!");
      break;
    default : 
      alert("没有这本书");
  }
}

直接用this.id作为switch的参数也是可以的。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript中注册和移除事件的4种方式
Mar 20 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
jQuery中has()方法用法实例
Jan 06 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
Jan 28 Javascript
jQuery post数据至ashx实例详解
Nov 18 Javascript
Bootstrap Table使用整理(一)
Jun 09 Javascript
Bootstrap Table使用整理(四)之工具栏
Jun 09 Javascript
vue中配置mint-ui报css错误问题的解决方法
Oct 11 Javascript
使用pm2自动化部署node项目的方法步骤
Jan 28 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
Apr 17 Javascript
Node.js中出现未捕获异常的处理方法
Jun 29 Javascript
jQuery实现简单全选框
Sep 13 jQuery
JavaScript中继承原理与用法实例入门
May 09 #Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 #jQuery
JavaScript进阶(四)原型与原型链用法实例分析
May 09 #Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 #Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
May 09 #Javascript
JavaScript进阶(一)变量声明提升实例分析
May 09 #Javascript
JavaScript面向对象核心知识与概念归纳整理
May 09 #Javascript
You might like
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
js常用代码段收集
2011/10/28 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
python的常见命令注入威胁
2013/02/18 Python
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
python树莓派红外反射传感器
2019/01/21 Python
python实现自动化上线脚本的示例
2019/07/01 Python
Django 拆分model和view的实现方法
2019/08/16 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
Noon埃及:埃及在线购物
2019/11/26 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
电子商务专业自我鉴定
2013/12/18 职场文书
交通安全教育制度
2014/02/02 职场文书
上班看电影检讨书
2014/02/12 职场文书
低碳环保口号
2014/06/12 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python