javascript:DOM自定义属性的妙用
虽然HTML元素的属性已经十分丰富,但在某些场合下,元素固有的属性无法完成我们的需求;
这个时候,自定义属性就会让问题解决起来比较方便。
比如,下面的栗子:
多张图片点击变化事件:当背景图片为a.jpg时,点击图片时,切换成b.jpg;

HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自定义属性</title>
<style type="text/css"> li{
list-style: none;
float: left;
width: 120px;
height: 120px;
background: url(a.jpg) no-repeat;
background-size: contain;
}
</style>
</head>
<body> <ul>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
因为以下条件不能作为判断条件:
- 背景图片无法作为判断条件:所以,通过if(this.style.background==='url(a.jpg)'){this.style.background='url(b.jpg)'}这种方法无法实现;
- 颜色值的表达方式多样,如(red,#333,#f7f7f7),同样无法作为判断条件;(知识补充)
- 相对路径无法作为判断条件,如(img/a.jpg)。(知识补充)
此时,一般的判断条件不靠谱,所以,用自定义属性的方法显得格外简洁,高效。
思路:
aLi[i].onOff=true;
给每一组li元素添加一个开关属性onOff,并设置默认值为:true;
所以,aLi[i].onOff=true;时候,背景图片默认为a.jpg;
然后,通过更改onOff的值,当 onOff=false时候,背景图片设置为:b.jpg.
DEMO演示地址:http://codepen.io/anon/pen/Wvwmga
JAVASCRIPT:
var aLi=document.getElementsByTagName('li');
for(var i=0;i<aLi.length;i++){
aLi[i].onOff=true;
//自定义属性,为每一个li元素添加一个onOff开关,默认值为true;
aLi[i].onclick=function(){
if (this.onOff) {
this.style.cssText='background:url(b.jpg) no-repeat;background-size:contain;';
this.onOff=false;
}else{
this.style.cssText='background:url(a.jpg) no-repeat;background-size:contain;';
this.onOff=true;
}
}
}
javascript:DOM自定义属性的妙用的更多相关文章
- javaScript DOM JQuery AJAX
http://www.cnblogs.com/wupeiqi/articles/5369773.html 一 JavaScript JavaScript是一门编程语言,浏览器内置了JavaScript ...
- JavaScript DOM 对象
JavaScript DOM 对象 什么叫DOM,DOM是文档对象模型(Document Object Model,是基于浏览器编程(在本教程中,可以说就是DHTML编程)的一套API接口,W3C ...
- JavaScript DOM 基础操作
JavaScript DOM 基础操作 一.获取元素的六方式 document.getElementById('id名称') //根据id名称获取 document.getElementsByclas ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- javascript DOM 操作 attribute 和 property 的区别
javascript DOM 操作 attribute 和 property 的区别 在做 URLRedirector 扩展时,注意到在使用 jquery 操作 checkbox 是否勾选时,用 at ...
- JavaScript DOM 编程艺术·setInterval与setTimeout的动画实现解析
先贴上moveElement()函数的大纲,为了方便观看,删了部分代码,完整版粘到文章后面. function moveElement(elementID,final_x,final_y,interv ...
- javascript DOM 操作
在javascript中,经常会需要操作DOM操作,在此记录一下学习到DOM操作的知识. 一.JavaScript DOM 操作 1.1.DOM概念 DOM :Document Object Mode ...
- javascript DOM操作之 querySelector,querySelectorAll
javascript DOM操作之 querySelector,querySelectorAll
- JavaScript : DOM文档解析详解
JavaScript DOM 文档解析 1.节点(node):来源于网络理论,代表网络中的一个连接点.网络是由节点构成的集合 <p title=“a gentle reminder”> ...
随机推荐
- 【性能优化】优化笔记之一:图像RGB与YUV转换优化
本文主要介绍如何优化您自己的CODE,实现软件的加速.我们一个图象模式识别的项目,需要将RGB格式的彩色图像先转换成黑白图像.图像转换的公式如下: Y = 0.299 * R + 0.587 * G ...
- 用python演示一个简单的AST(抽象语法树)
如果对'a + 3 * b'进行解释,当中a=2,b=5 代码非常easy,就不再进行具体的解释了. Num = lambda env, n: n Var = lambda env, x: env[x ...
- js库编写的环境和准备工作
在编写一个js库之前需要准备许多基础知识. 本人在编写之前主要参考了visjs和百度的echarts这两个库的部分内容,这之中提取出几个要点如下: 1.如何整理代码结构,使模块与模块分开又不至于出现调 ...
- PhoneGap移动开发框架
phonegap是一个跨平台的移动app开发框架,可以把html css js写的页面打包成跨平台的可以安装的移动app,并且可以调用原生的几乎所有的功能,比如摄像头,联系人,加速度等 看到一篇 ...
- C#--接口的实现
接口: 不允许使用访问修饰符,所有接口成员都是公共的. 接口成员不能包含代码体. 接口不能定义字段成员. 接口成员不能使用关键字static,vritual,abstract,sealed来定义. 类 ...
- poj 1080 dp
基因配对 给出俩基因链和配对的值 求配对值得最大值 简单dp #include<iostream> #include<stdio.h> #include<string ...
- poj1127 Jack Straws(线段相交+并查集)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Jack Straws Time Limit: 1000MS Memory L ...
- 求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字
#include <iostream> using namespace std; int main() {long long s,n,i,j,p;s=0; cin>>n; ...
- CSS3控制元素排列
需求: 将改变为. 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- Number Sequence(HDU 1005 构造矩阵 )
Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...