js自定义属性以及自定义一组开关应用

任何的html标签都有自己的一个属性,当时那都是它本身的固定属性,而我们在项目中可能会遇到需要给标签添加一些自定义的属性,去判断替换内容或者赋值等等,那么就需要给标签设定一个属性来作为判断标准或者赋值的标准,所以今天就来谈谈给标签自定义属性的一个小应用。

案例:三个div有背景色,想要达到效果是点击任何一个给替换颜色再次点击,还给还原回来,各自的div不影响其他的div,也可以都点击都变色,相反都还原。

好的,话不多说,我们来看代码,先来看下简单的布局:

 1 <style>
 2    ul,li{list-style: none;}
 3    ul{overflow: hidden;}
 4    li{width:200px;height:200px;background-color:#f1f1f1;margin:100px 15px;float:left;}
 5 </style>
 6 <body>
 7 <ul id="list">
 8     <li></li>
 9     <li></li>
10     <li></li>
11 </ul>
12 </body>

目前不加js的效果就是三个灰色的方形,那么来看js

 1 <script>
 2     window.onload= function(){
 3      var List=document.getElementById("list");//先获取到最外面的ul
 4      var aLi=List.getElementsByTagName("li");//然后获取li
 5
 6         for(var i=0;i<aLi.length;i++){
 7             aLi[i].onOff=true;//这里不仅是一个开关来判断,假设当前开关若为真
 8             aLi[i].onclick=function(){
 9                 if(this.onOff){//如果当前开关为真,一定要记得加this,主要是指出当前开关,那么就执行下面的代码
10                     this.style.backgroundColor="#ff0";
11                     this.onOff=false;//这里要把它恢复为假
12                 }else{//否则就执行下面的代码,记得也要恢复为真,这样就可以随意切换
13                     this.style.backgroundColor="#f1f1f1";
14                     this.onOff=true;
15                 }
16
17             }
18         }
19     };
20 </script>

好的,就是这样,主要需要提醒的就是因为要div互不影响,在设置开关来控制的时候,一定是各自是各自的开关,所以必须写进for循环里面。

好了,就是这样,加油!

时间: 2024-08-29 07:32:21

js自定义属性以及自定义一组开关应用的相关文章

JS自定义属性的设置与获取

以前感觉用JQuery来设置自定义属性很方便,现在没有用JQuery,要用原生的JavaScript来操作自定义属性. Jquery操作自定义属性的方法,很简洁: Js代码   $("#test").attr("test","aaa") // 设置 $("#test").removeAttr("test") // 删除 var testAttr = "ddd"; $('#test[tes

jquery.validate.js使用之自定义表单验证规则

jquery.validate.js使用之自定义表单验证规则,下面列出了一些常用的验证法规则 jquery.validate.js演示查看 jquery validate强大的jquery表单验证插件 http://www.51xuediannao.com/js/jquery/jquery_validate/ ======================================================== //扩展验证规则 //邮箱 表单验证规则jQuery.validator.

什么是vue.js中的自定义指令?

问题一:什么是vue.js中的自定义指令? 自定义一些指令对底层DOM进行操作 更多参考 Vue里面有许多内置的指令,比如v-if和v-show,这些丰富的指令能满足我们的绝大部分业务需求,不过在需要一些特殊功能时,我们仍然希望对DOM进行底层的操作,这时就要用到自定义指令. 问题二:自定义指令的几个钩子函数 bind:只调用一次,指令第一次绑定到元素时调用.在这里可以进行一次性的初始化设置. inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中). upda

Ember.js 入门指南——自定义包裹组件的HTML标签

按照惯例,先做好准备工作,使用Ember CLI命令生成演示所需的文件: ember g route customizing-component-element ember g component customizing-component-element ember g route home ember g route about 默认情况下,组件会被包裹在div标签内.比如,组件渲染之后得到下面的代码: <div id="ember180">   <h1>M

Ember.js 入门指南——自定义序列号器

在Ember应用中,序列化器会格式化与后台交互的数据,包括发送和接收的数据.默认情况下会使用JSON API序列化数据.如果你的后端使用不同的格式,Ember Data允许你自定义序列化器或者定义一个完全不同的序列化器. Ember Data内置了三个序列化器.JSONAPISerializer是默认的序列化器,用与处理后端的JSON API.JSONSerializer是一个简单的序列化器,用与处理单个JSON对象或者是处理记录数组.RESTSerializer是一个复杂的序列化器,支持侧面加

Ember.js 入门指南——自定义适配器

在Ember应用中适配器决定了数据保存到后台的方式,比如URL格式和请求头部.Ember Data默认的适配器是内置的REST API回调. 实际使用中经常会扩展默认的适配器.Ember的立场是应该通过扩展适配器来添加不同的功能,而非添加标识.这样可以使得代码更加容易测试.更加容易理解,同时也降低了可能需要扩展的适配器的代码. 如果你的后端使用的是Ember约定的规则那么可用使用适配器adapters/application.js.适配器application优先级比默认的适配器高,但是比指定的

JS在HTML自定义格式化字符串的方法

python中有format方法对字符串进行格式化 JS中可以通过自定义的方法来实现 1 String.prototype.Format = function (args) { 2 /*this代表要调用Format方法的字符串*/ 3 /*replace的第一个参数为正则表达式,g表示处理匹配到的所有字符串,在js中使用//包起来*/ 4 /*replace的第二个参数为匹配字符串的处理,k1匹配结果包含{},k2只保留{}内的内容,g代表匹配所有*/ 5 return this.replac

Android 自定义SwitchButton开关控件

SwitchButton开关控件早已经非常流行.有各种各样的样式,SwitchButton开关控件一般用于app软件设置那里,控制缓存.声音.提示.下载等等.是具有很好的UI体验以及用户的习惯性.那么再下面介绍一个SwitchButton开关控件.并附上源码. 源码下载:点击 一.看实现的效果图 二.自定义SwitchButton 这是一个继承CheckBox的SwitchButton类.来实现做这些动画效果的,首先准备好这些图片,然后canvas绘制控件 的边框.背景.以及按钮.绘制时候加上相

wordpress优化之结合prism.js为编辑器自定义按钮转化代码

原文链接 http://ymblog.net/2016/07/24/wordpress-prism/ 继昨天花了一天一夜的时间匆匆写了主题Jiameil3.0之后,心中一直在想着优化加速,体验更好,插件更少,到目前为止,博客插件有多说,Crayon Syntax Highlighter代码高亮插件,super cache缓存插件,百度sitemap.在没有缓存的情况下,首页dom初识加载完成(不是document加载完成)的时间为5-6s左右,有缓存的情况下大概为2s左右,觉得慢了,查看源码,发