当前位置: 首页 > news >正文

js---05 自定义属性

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
li { list-style:none; width:114px; height:140px; background:url(img/normal.png); float:left; margin-right:20px; }
</style>
<script>
window.onload = function (){
    var aLi = document.getElementsByTagName('li');
    // var onOff = true;    // 只能控制一组!
    for( var i=0; i<aLi.length; i++ ){
        aLi[i].onOff = true;
        aLi[i].onclick = function (){
            // alert( this.style.background );
            // 背景不能判断
            // color red #f00 
            // 相对路径
            if ( this.onOff ) {
                this.style.background = 'url(img/active.png)';
                this.onOff = false;
            } else {
                this.style.background = 'url(img/normal.png)';
                this.onOff = true;
            }
        };
    }
};
</script>
</head>

<body>

<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>

</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
window.onload = function (){
    var aBtn = document.getElementsByTagName('input');
    // 想建立“匹配”“对应”关系,就用索引值
    var arr = [ '莫涛', '张森', '杜鹏' ];
    for( var i=0; i<aBtn.length; i++ ){
        aBtn[i].index = i;            // 每个都加一个属性,自定义属性(索引值)
        aBtn[i].onclick = function (){
            // alert( arr[ this.index ] );
            this.value = arr[ this.index ];
        };
    }
};
</script>
</head>

<body>

<input type="button" value="btn1" />
<input type="button" value="btn2" />
<input type="button" value="btn3" />

</body>
</html>
window.onload = function (){
    var aBtn = document.getElementsByTagName('input');
    // aBtn[0].abc = 123;            // 自定义属性
    // alert( aBtn[0].abc );
    // aBtn[0].abc = 456;
    // JS 可以为任何HTML元素添加任意个 自定义属性
    for( var i=0; i<aBtn.length; i++ ){
        aBtn[i].abc = 123;
        aBtn[i].xyz = true;
    }
};

arrLi[i].onclick = function (){    
    for( var i=0; i<arrLi.length; i++ ){
        if( arrLi[i] !=this ){
            arrLi[i].className = '';
        }
    }
    if( this.className == '' ){
        this.className = 'hover';
    }else{
        this.className = '';
    }
};

for( var i=0; i<aUl.length; i++ ){
    aLi = aUl[i].getElementsByTagName('li');
    for( var j=0; j<aLi.length; j++ ){
        arrLi.push( aLi[j] );
    }
}

for( var i=0; i<aH2.length; i++ ){
    aH2[i].index = i;
    aH2[i].onclick = function (){
        
        for( var i=0; i<aH2.length; i++ ){
            if( i != this.index ){
                aUl[i].style.display = 'none';
                aH2[i].className = '';
            }
        }
        
        if( this.className == '' ){
            aUl[this.index].style.display = 'block';
            this.className = 'active';
        } else {
            aUl[this.index].style.display = 'none';
            this.className = '';
        }
    };
}

 

转载于:https://www.cnblogs.com/yaowen/p/6828750.html

相关文章:

  • 深入解析JMM原理
  • 为Redmine的项目加上起止时间
  • 详尽Netty(一):初探netty
  • Php基础知识测试题
  • 设计模式(四):建造者模式的详细解析
  • [swust1745] 餐巾计划问题(费用流)
  • 详尽Netty(二):源码环境搭建
  • AssetBundle管理机制(上)
  • 详尽Netty(三):Channel
  • 循序渐进之Spring AOP(5) - 创建切面
  • 牛逼!阿里推出国产开源的jdk! 快来试试吧!
  • ES6 中的let 声明变量
  • 原来Java类的加载过程是这样的?
  • 淘宝数据库OceanBase SQL编译器部分 源代码阅读--生成物理查询计划
  • 聊聊jvm几种垃圾收集器
  • __proto__ 和 prototype的关系
  • angular组件开发
  • C++入门教程(10):for 语句
  • extjs4学习之配置
  • Git的一些常用操作
  • GraphQL学习过程应该是这样的
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Java 多线程编程之:notify 和 wait 用法
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Joomla 2.x, 3.x useful code cheatsheet
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • react-native 安卓真机环境搭建
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 实现简单的正则表达式引擎
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 小程序 setData 学问多
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 追踪解析 FutureTask 源码
  • Linux权限管理(week1_day5)--技术流ken
  • 阿里云移动端播放器高级功能介绍
  • 进程与线程(三)——进程/线程间通信
  • 我们雇佣了一只大猴子...
  • ​【已解决】npm install​卡主不动的情况
  • ​ArcGIS Pro 如何批量删除字段
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ( 10 )MySQL中的外键
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .“空心村”成因分析及解决对策122344
  • .Net - 类的介绍
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .Net面试题4
  • /bin/bash^M: bad interpreter: No such file or directory
  • @ModelAttribute使用详解
  • @Query中countQuery的介绍
  • @RequestBody的使用
  • @基于大模型的旅游路线推荐方案
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务