js自定义属性和索引值(2019-06-27)

复习

  • 流程控制: 顺序结构\分支结构\循环结构
  • if语句
       1- if(条件){  条件成立执行的语句          }
       2- if(条件){   条件成立执行的语句    }else{   条件不成立执行的语句     }
       3- if(条件){ ... }else if( 条件 ){ ... } .... else{   ...   }
    
    
  • switch语句
    • switch语句中变量和case之间是绝对比较 ,相当于 "==="
        var a = ‘1‘;
        swicth(a){
            case 1 : 代码;break;
            case 2 : 代码;break;
            case 3 : 代码;break;
            ...
            default:代码;
        }
    
  • for循环
        for(var i = 0; i < 10; i++){
            console.log(i);
        }
        console.log(i); //10
    
        //遍历数组
        var ary = [2,3,4,5];
        for(var i = 0; i < ary.length; i++){
            console.log(ary[i]);
        }
        //批量生成标签
        var str = ‘‘;
        for(var i = 0; i < 100; i++){
            str += ‘<div></div>‘;
        }
    
  • 获取元素的方法
    • 1-var oBox = document.getElementById(‘box‘); // 单个元素(DOM对象)

          oBox.style.width = "100px";
          oBox.onclick = function(){   }
      
    • 2-var aDiv = document.getElementsByTagName(‘li‘);
          var aDiv = oBox.getElementsByTagName(‘li‘);
          // 类数组 [li,li,li]
          for(var i = 0; i < aDiv.length; i++ ){
               aDiv[i].style.width = ‘100px‘;
               aDiv[i].onclick = function(){
      
                   this.style.width = "100px";
      
               }
          }
      
    • 3-var aDiv = document.getElementsByClassName(‘red‘);
  • 输出方式 1-alert(); 2-console.log(); console.dir(); //打印对象详细信息 3-document.write();
    - 在body标签里写入内容,只能操作body里面的内容 - 可以写入文本和标签 - 如果先执行js就会写在已有标签之前,如果后执行就是在body末尾添加 - 如果放在事件里面会覆盖body里面已有的内容

(一)循环

  • 1-while循环

        初始化循环变量;
        while(循环条件){
            循环体;
            更新循环变量;
        }
    
  • 2-do-while
    • 和while的区别,当条件不满足时,do-while会执行一次
```
    初始化循环变量;
    do{
        循环体;
        更新循环变量;
    }while(循环条件);

```
- 3- continue :结束本轮循环,继续下一轮循环
- 4- break : 跳出整个循环

(二)for in 循环

  • 1- 对象操作

       var obj = {
            name:‘优就业‘,
            age:18,
            1:‘aaaa‘,
        };
        //查看属性值
        console.log(obj.age);
        // 添加属性
        obj.city = "北京";
        console.log(obj);
        //修改已有的属性值
        obj.age = 19;
        console.log(obj);
        //删除属性
        delete obj.name;
        console.log(obj);
    
        //当对象属性名是数字时,需要 obj[数字]
        console.log(obj[1]);
    
       console.log( obj[‘age‘] );
       //如果属性名使用的是变量,也需要用obj[变量名]访问
       var a = ‘age‘;
       console.log(obj[a]);
    
  • 2- for in循环
        for(var key in obj){
            //key是一个变量,代表的是对象的属性名
            //obj代表要遍历的对象
            //obj[key] 代表属性值
        }
    
    • for in循环会优先按升序遍历数字属性,其他属性按定义的顺序遍历

(三) 事件里的this

  • 1-为什么事件里面需要用this?

        var aLi = document.getElementsByTagName(‘li‘); //[li,li,li]
        for(var i = 0; i < aLi.length; i++){
            aLi[i].onclick = function(){
                console.log(i);
                // 因为用户点击时,for循环早已执行完毕,i最终的值是3,再取i的时候永远是3,所以不能使用i
                // 在批量绑定事件的事件处理函数里面使用this代表触发事件的那个元素
                this.style.border = "1px solid black";
            }
        }
    
    
  • 2- 怎么解决不能使用i的问题?
        for(var i = 0; i < aLi.length; i++){
            aLi[i].index = i;  //给每个li设置一个自定义属性index,用来存li的索引
            aLi[i].onclick = function(){
                console.log(this.index); // 事件发生时通过this.index访问当前对象的索引值
            }
        }

原文地址:https://www.cnblogs.com/didamehulayou/p/11098997.html

时间: 2024-08-08 22:11:20

js自定义属性和索引值(2019-06-27)的相关文章

JS获取列表索引值

html部分 <ul id="test"> <li>111</li> <li>222</li> <li>333</li> <li>444</li> </ul> JS部分 window.onload=function(){ var ul=document.getElementById('test'); var ul_lis=ul.getElementsByTagName

2019.06.27

1 什么是编程? 人将自己的思维逻辑和想法通过计算机能够识别的语言(载体)写下来, 告诉计算机(实际操作者)按照你的思维逻辑去帮你干活.编程的最终结果就是一系列文件. 2 计算机的主要部件有哪些? 主板:主板(英语:Motherboard,Mainboard,简称Mobo):又称主机板.系统板.母板.底板等,是构成复杂电子系统例如电子计算机的中心或者主电路板. CPU:中央处理器(CPU,英语:Central Processing Unit / Processor),其功能主要是解释计算机指令以

索引值的应用

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <script> window.onload = function (){ var aBtn = document.getElementsByTag

利用js输出ul下li的index索引值

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>打印索引</title> </head> <style type="text/css"> li{background: pink;margin-bottom: 10px;height: 40px;} </style> <body>

js循环给li绑定事件实现 点击li弹出其索引值 和内容

代码如下: html代码 <ul> <li>房产</li> <li>家居</li> <li>二手房</li> </ul> 方法一: var itemli = document.getElementsByTagName("li"); for(var i = 0; i<itemli.length; i++){ itemli[i].index = i; //给每个li定义一个属性索引值,赋

2019.10.27 头条面试准备

2019.10.27 头条面试准备 个人简历 2019.06 - 至今上海华为开发工程师 实习部门:5G开发部 项目:网站开发.运维开发.数据处理 2019.06至今华为实习 Python+Django+Javascript+Nginx+rabbitMQ+ELK 基于 Django 框架使用 Python 开发网站基础进程监控系统,实现进程异常记录.进程异常自动恢复.发送告警邮件,并且用 Web 界面进行展示和管理.整个框架由本人独立设计完成并上线,保证了部门 Web 的稳定. 使用Python

Handlebars.js循环中索引(@index)使用技巧(访问父级索引)

使用Handlebars.js过程中,难免会使用循环,比如构造数据表格.而使用循环,又经常会用到索引,也就是获取当前循环到第几次了,一般会以这个为序号显示在页面上. Handlebars.js中获取循环索引很简单,只需在循环中使用{{@index}}即可. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <META http-equiv=Content-Type content="text/html; charset=utf-

JavaScript基础 substring() 返回 起始索引值 到 结束索引值 之间的所有字符

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

[ jquery 方法 index(selector | element) ] 此方法返回相应元素的索引值

搜索匹配的元素,并返回相应元素的索引值,从0开始计数,如果不给 .index() 方法传递参数,那么返回值就是这个jQuery对象集合中第一个元素相对于其同辈元素的位置:  如果参数是一组DOM元素或者jQuery对象,那么返回值就是传递的元素相对于原先集合的位置 如果参数是一个选择器,那么返回值就是原先元素相对于选择器匹配元素中的位置.如果找不到匹配的元素,则返回-1 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <