Demos:   https://github.com/jiangheyan/JavaScriptBase 

一、自定义属性

1、读写操作
<input abc="123" type="button" value="按钮" />
=========================================================
//读写:
var aBtn = document.getElementsByTagName('input');
aBtn[0].abc = '456';

2、js可以为任何HTML元素添加任意个自定义属性
3、自定义属性可以作为判断的依据,相对于用class后者flag变量判断,优点:
3.1     有时候不允许操作class时,可以利用自定义属性,通过判断自定义属性的值,从而操作流程
3.2     一个flag变量只能判断一组对象,当对象在循环中有多组对象时,只能用class 或者 自定义属性
4、for循环里面的i
1 for(var i = 0; i < aLi.length; i++) {
2      i     //这里的 i 是0、1、2……
3      aLi[i].onclick = function() {
4           i     //这里的 i 涉及到闭包和作用域问题,不能返回1、2、…… 只能返回aLi.length
5      }
6 }

5、自定义索引
1 for(var i = 0; i < aLi.length; i++) {
2      aLi[i].index = i;     //给每个li添加自定义属性index,值为i,模拟成为索引
3      aLi[i].onclick = function() {
4           i     //这里的 i 涉及到闭包和作用域问题,不能返回1、2、…… 只能返回aLi.length
5      }
6 }

5.1     自定义索引的应用
 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 5 <title>无标题文档</title>
 6 <script>
 7 window.onload = function (){
 8     var aBtn = document.getElementsByTagName('input');
 9     var aP = document.getElementsByTagName('p');
10
11     // 想建立“匹配”“对应”关系,就用索引值
12     var arr = [ '莫涛', '张森', '杜鹏' ];
13
14     for( var i=0; i<aBtn.length; i++ ){
15
16         aBtn[i].index = i;            // 自定义属性(索引值)
17
18         aBtn[i].onclick = function (){
19             // alert( arr[ this.index ] );
20             this.value = arr[ this.index ];
21
22             aP[ this.index ].innerHTML = arr[ this.index ];
23         };
24     }
25 };
26 </script>
27 </head>
28
29 <body>
30
31 <input type="button" value="btn1" />
32 <input type="button" value="btn2" />
33 <input type="button" value="btn3" />
34 <p>a</p>
35 <p>b</p>
36 <p>c</p>
37
38 </body>
39 </html>

转载于:https://www.cnblogs.com/hihao/p/7344630.html

JavaScript基础学习--05自定义属性、索引值相关推荐

  1. javaScript基础学习 - 14 - JavaScript内置对象 -案例代码

    javaScript基础学习 - 14 - JavaScript内置对象 -案例代码 1. Math对象最大值 2. 封装自己的数学对象 3. Math绝对值和三个取整方法 4. Math对象随机数方 ...

  2. JavaScript基础学习 动态生成表格

    JavaScript基础学习 动态生成表格 根据我们拥有的数据来动态创建表格的行和列,以及实现删除行的操作 <!DOCTYPE html> <html lang="en&q ...

  3. JavaScript基础学习 模拟京东查询快递单号

    JavaScript基础学习 模拟京东查询快递单号 <!DOCTYPE html> <html lang="en"><head><meta ...

  4. JS学习笔记(JavaScript基础学习必备)

    讲解JavaScript 基础语法.关键特性.JSON.WebAPI 等知识点.涉及网页窗口交互的方法以及通过 DOM 进行网页元素的相关操作. 文章目录 一.JavaScript 基础 1.什么是 ...

  5. JavaScript基础学习、复习笔记

    文章目录 前言 一.js基础知识 (变量.数据类型.运算符) 1.变量 1.1 声明变量及初始化 1.2 变量更新 1.3 变量语法拓展 1.4 变量命名 1.5 交换两个变量的值 2. 数据类型(重 ...

  6. JavaScript基础第05天【笔记+代码】

    函数.作用域.预解析.对象 昨日复习 01 - arguments使用 5. arguments的使用 02 - 利用函数求任意个数的最大值 03 - 利用函数翻转数组 04 - 利用函数冒泡排序 0 ...

  7. 前端JavaScript基础学习

    JavaScript 学习记录整理于:https://chinese.freecodecamp.org/learn. 一.变量 1.声明变量   在计算机科学中,数据就是一切,它对于计算机意义重大. ...

  8. JavaScript 基础学习笔记

    JavaScript 基础 一.初始 JavaScript 1.JS 注释 2.JS 输入输出语句 二.变量 1.变量概述 1)什么是变量 2)变量在内存中的存储 2.变量的使用 3.变量的初始化 4 ...

  9. JavaScript基础学习——第五天(原型、垃圾回收、数组简介)

    目录 1. 原型 2. 垃圾回收 3. 数组简介 知识一:原型 深入 JavaScript 之原型和原型链 <!DOCTYPE html> <html><head> ...

最新文章

  1. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)
  2. 如何从“查找”中排除所有“拒绝权限”消息?
  3. (转)Engineering Productivity
  4. WPF ControlTemplate TemplateBinding
  5. BZOJ 4241 分块
  6. 计算机指令称,通俗解释什么叫计算机指令?
  7. Kali aircrack-ng wifi密码破解(暴力)(1)
  8. 轻量型thttpd+php5
  9. Java高铁的速度是火车的两倍_超级高铁最高速度是飞机速度的近两倍,如果研发成功,对中国房价涨跌和中国高铁的比较优势会有什么影响?...
  10. logit方程怎么写_碳酸钠和氯化钙的化学方程式怎么写
  11. 怎么把cad的图导入ps_CAD图如何导入Photoshop的方法
  12. webservice 缺少根元素_草莓种植,这2种元素至关重要,直接影响草莓的产量和品质...
  13. patreon cg人物插画作品合集分享
  14. 180127 逆向-JarvisOJ(BrokenDriver)(静态分析解法)
  15. AVS2参考软件的运行
  16. 【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】
  17. 关于电影视频服务器架设的方法
  18. “光庭杯”第五届华中北区程序设计邀请赛 暨 WHU第八届程序设计竞赛(部分解题报告)
  19. 数字孪生电网解决方案助力智慧电网体系建设
  20. [Previous line repeated 995 more times]RecursionError: maximum recursion depth exceeded

热门文章

  1. linux子进程父进程例子,linux 子进程访问父进程
  2. 如何c51和mdk共存兼容_2020年网站如何做seo优化
  3. 2021高考无准考证成绩查询,2021考研没有准考证号怎么查成绩
  4. linux 两块硬盘 分区,linux 两块硬盘分区,这个是什么/dev/mapper/VolGroup00-LogVol00
  5. 如何关闭借呗订阅开通通知_支付宝花呗借呗隐藏规则,芝麻分600以上,花呗3.6万,借呗12万!...
  6. 使用python下载文件的简单示例_Python
  7. linux go missing git command,安装beego出现go: missing Git command
  8. 如何制作印章_用Word也能做出逼真的电子印章!简单3步!1分钟搞定
  9. 合并相同数据的行_R语言笔记(六):数据框重塑(reshape2)
  10. linux视图版怎么输入命令,分享在Linux命令下操作MySQL视图实例代码