自定义属性,第一节——JS学习笔记2015-5-25(第38天)

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 5 <title>无标题文档</title>
 6 <style>
 7 li { list-style:none; width:114px; height:140px; background:url(img/normal.png); float:left; margin-right:20px; }
 8 </style>
 9 <script>
10 window.onload = function (){
11     var aLi = document.getElementsByTagName(‘li‘);
12     // var onOff = true;    // 只能控制一组!
13
14     for( var i=0; i<aLi.length; i++ ){
15
16         aLi[i].onOff = true;
17
18         aLi[i].onclick = function (){
19
20             // alert( this.style.background );
21             // 背景不能判断
22             // color red #f00
23             // 相对路径
24
25             if ( this.onOff ) {
26                 this.style.background = ‘url(img/active.png)‘;
27                 this.onOff = false;
28             } else {
29                 this.style.background = ‘url(img/normal.png)‘;
30                 this.onOff = true;
31             }
32         };
33     }
34 };
35 </script>
36 </head>
37
38 <body>
39
40 <ul>
41     <li></li>
42     <li></li>
43     <li></li>
44 </ul>
45
46 </body>
47 </html>

思路:

首先找到所有的li元素,

然后给这里的li元素自定义属性值为true;//

 var aLi = document.getElementsByTagName(‘li‘);

如何给他们每个li都添加true呢? 就是使用for循环来实现;

// for( var i=0; i<aLi.length; i++ )

同时我们希望看到点击后产生一定的效果,所有这里需要一个点击事件,每个li都会有点击事件,所以有onclick这样一个事件

// 在循环体内:

aLi[i].onclick = function (){}

点击之后呢?点击之后我们来进行判断(所以需要if...else...语句)。如果判断结果是true执行相应的语言,然后改变其布尔值;用于下次判断;

其实从解决问题的思路来看,实际上应该是解决什么问题?问题就是希望点击li列表,产生不同的效果

那么如何产生不同的效果呢?通过判断

那通过什么来判断呢?通过布尔值,布尔值从何而来? 从自定义属性而来

自定义属性如何添加?通过for循环

这样一个倒推的关系来催出解决方案;

时间: 2024-11-07 14:33:53

自定义属性,第一节——JS学习笔记2015-5-25(第38天)的相关文章

每日js学习笔记2014.5.4

<script language="javascript">var mystring = "这是第一个正则表达式的例子";var myregex = new RegExp("这是"); //创建正则表达式if (myregex.test(mystring)) //test的功能是查找字符串中是否有匹配项,有则返回true,没有则返回false{ document.write ("找到了指定的模式");}else{

js学习笔记知识点

AJAX用法安全限制JSONPCORS面向对象编程创建对象构造函数原型继承class继承 AJAX 用法 AJAX不是JavaScript的规范,它只是一个哥们"发明"的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求 在现代浏览器上写AJAX主要依靠XMLHttpRequest对象: 'use strict'; function success(text) { var textarea = document.getE

JS学习笔记-JSON

JSON(JavaScriptObject Notation)-JS对象表示法,是JavaScript的一个严格子集,它是一种开发式和基于文本的数据交换格式,因此JSON并不是JS独有,其他很多语言也可以对JSON进行解析和序列化. 特点: 1.轻量级-易于阅读和编写,同时易于及其解析和生成 2.可表示类型: (1)简单值:字符串.数值.布尔值.null,不支持特殊值JS中的undefined (2)对象 { "user" : "Admin", "age&

js学习笔记——数组方法

join() 把数组中所有元素转化为字符串并连接起来,并返回该字符串, var arr=[1,2,3]; var str=arr.join("#"); //str="1#2#3"; 如果没有指定分隔符,则默认为逗号 var str2=arr.join(); //str2="1,2,3"; reverse() 在原数组上把元素的顺序颠倒过来,并返回该数组 var arr=[1,2,3]; arr.reverse(); //arr=[3,2,1];

js第一节-js的属性操作

js第一节-js的属性操作 今天我们第一节的内容主要跟大家聊聊js的属性操作,那么什么是属性呢?属性就是对于一个事物的描述,比如一个元素它的id,它的value值等.每个元素都有其自己本有的属性,也有我们给它定义的属性--自定义属性,总之这些都是描述其元素独有特性的.现在呢,我通过两个实例跟大家讲解一下什么是js的属性操作. 一.第一个实例是:图片的轮播图 效果图: 图1:加载的时候 图2:加载之后 HTML代码和CSS代码: JS代码: 上面用到了var oId = document.getE

JS学习笔记--轮播图效果

希望通过自己的学习收获哪怕收获一点点,进步一点点都是值得的,加油吧!!! 本章知识点:index this for if else 下边我分享下通过老师教的方式写的轮播图,基础知识实现: 1.css代码 <style> ul, ol { padding:0; margin:0; } li { list-style:none; } #box { width:600px; height:350px; border:10px solid #ccc; margin:0 auto; position:r

Vue.js学习笔记:在元素 和 template 中使用 v-if 指令

f 指令 语法比较简单,直接上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> <script src="https://cdn.bootcss.com/vue/2.2.

[Pro Angular.JS]学习笔记1.1:设置开发环境

可以使用yeoman.io,很方便.我已经写了一篇随笔,介绍如何使用.这里也有一篇介绍的文章:http://www.cnblogs.com/JoannaQ/p/3756281.html 代码编辑器,在Mac下用了一下WebStorm,太恶心了.另外发现书的作者使用的开发环境是Windows + VS Express 2013,为了方便学习,我也使用VS Express 2013 Update2.VS2013用起来蛮舒服的,把WebStorm比得跟驼屎一样.也许是因为我没用习惯吧. 1.安装Nod

【转】Backbone.js学习笔记(二)细说MVC

文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Backbone源码结构 1: (function() { 2: Backbone.Events // 自定义事件 3: Backbone.Model // 模型构造函数和原型扩展 4: Backbone.Collection // 集合构造函数和原型扩展 5: Backbone.Router // 路由