1.页面加载事件
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
div {
width: 100px;
height: 100px;
}
</style>
<script>
window.onload = function() {
var demo = document.getElementById("demo");
demo.style.backgroundColor = "red";
}
</script>
</head>
<body>
<div id="demo">
</div>
</body>
</html>
总结:window.onload用法详解:
网页中的javaScript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式:
一.将脚本代码放在网页的底端,这样在运行脚本代码的时候,可以确保要操作的对象已经加载完成。
二.通过window.onload来执行脚本代码。
第一种方式感觉比较凌乱(其实推荐使用),往往我们需要将脚本代码放在一个更为合适的地方,那么window.onload方式就是一个良好的选择。window.onload是一个事件,当文档加载完成之后就会触发该事件,可以为此事件注册事件处理函数,并将要执行的脚本代码放在事件处理函数中,于是就可以避免获取不到对象的情况。
2.数组的常用操作
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
div {
width: 100px;
height: 100px;
background-color: #ffff00;
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
<script>
// push 组
var arr = [1,3,5,7]; // 原数组
arr.push(9); //把 9 添加 arr 的最后面
console.log(arr); // 13579
console.log(arr.push(11)); // 返回的是数组的长度 6
console.log(arr); // 1.3.5.7.9.11
// unshift 组
var arr1 = ["a","b","c"];
arr1.unshift("你好");
console.log(arr1); // ["你好", "a", "b", "c"]
console.log(arr1.unshift("今天")); // 返回数组的长度 5
console.log(arr1);
// pop() 删除最后一个元素 并且返回最后一个值
var arrpop = [1,2,3,4,5];
arrpop.pop(); // 删除一次 把 5删掉了 [1,2,3,4]
console.log(arrpop); // [1,2,3,4]
console.log(arrpop.pop()); // 把 4 删掉 剩下 [1,2,3] 返回的是 4
console.log(arrpop); // [1,2,3]
// shift 删除第一个元素 并且返回第一个值
var arrshift = ["a","b","c"];
console.log(arrshift.shift()); // a
console.log(arrshift); // [b,c]
arrshift.shift(); // 吧b 删掉了, 并且返回 b
console.log(arrshift); // 只剩下一个c
// 连接数组
var aa = [1,2,3];
var bb = ["a","b","c"];
console.log(aa.concat(bb)); // 新的数组 [1, 2, 3, "a", "b", "c"]
console.log(aa);
console.log(bb);
// join 将数组转换为字符串
var arrjoin = ["2015","12","2"];
console.log(arrjoin.join("-")); // 2015-12-2 字符串
console.log(arrjoin.join("+")); // 2015+12+2
console.log(arrjoin.join("*")); // 2015*12*2
console.log(arrjoin); // 结果是原数组 不影响本数组
// split 将字符串转换为数组
var txt = "2015-12-2";
var text = "中国 山东 威海 小渔村";
console.log(txt.split("-"));
console.log(text.split(" "));
// <div class="one demo test"> </div>
</script>
2.1 获取className
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
}
</style>
</head>
<body>
<div>
<div></div>
</div>
<div></div>
<div></div>
<div class="two one"></div>
<div></div>
<div></div>
<div class="one"></div>
<div></div>
<div></div>
<div class="one"></div>
</body>
</html>
<script>
var ones = document.getElementsByClassName("one"); // 所有的类名
for(var i=0;i<ones.length;i++) {
ones[i].style.backgroundColor = "purple";
}
</script>
2.2 封装获取类名兼容性写法
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div class="demo nav test"></div>
<div></div>
<div class="demo"></div>
<div></div>
<div></div>
<div></div>
<div class="demo"></div>
<div></div>
<div></div>
<div></div>
</body>
</html>
<script>
// 分两部分 ,首先是浏览器支持de
function getClassName(classname) { // 形参
// 先看看浏览器支不支持
if(document.getElementsByClassName) { // 如果支持这个写法
return document.getElementsByClassName(classname); // 直接返回所有元素
}
// 下面的语句是ie678 执行
// 核心思想 把所有的标签都取过来, 然后一个一个的判断当前元素的类名是不是 classname
//是就留下,不是 就走开
// alert(11);
var arr = []; //数组用来存储满足条件的 元素
var dom = document.getElementsByTagName("*"); // 把所有的标签都取过来 * 所有的
// 去过所有的标签之后, 把 每一个标签的类名 (字符串) 转换为数组 , 只有数组才可以遍历
for(var i=0;i<dom.length;i++) { // 遍历每一个标签
// 把每一个标签的类名 转换为数组
var arrName = dom[i].className.split(" ");
for(var j=0;j<arrName.length;j++) { // 遍历 arrname
if(arrName[j] == classname) { // 判断
arr.push(dom[i]); // 把当前满足条件的元素 给 arr
}
}
}
return arr; // 返回总的数组
}
console.log(getClassName("demo").length); // 实参
</script>
总结:核心思想 就是把所有的标签都取过来, 然后一个一个的判断当前元素的类名是不是 classname
3. 节点
3.1 父节点
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="demo">
<div id="xiongda">
<div id="xionghaizi"></div>
</div>
</div>
</body>
</html>
<script>
var xionghai = document.getElementById("xionghaizi");
console.log(xionghai.parentNode.parentNode.id);// demo
</script>
3.2 兄弟节点
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div>1</div>
<div id="two">2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
</body>
</html>
<script>
var two = document.getElementById("two");
var next = two.nextElementSibling || two.nextSibling;// two的下一个节点。就是 3
next.style.backgroundColor = "purple"; // 设置3的背景为紫色
</script>
3.3 第一个孩子
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="father">
<div class="son">123</div>
<div class="son">123</div>
<div class="son">123</div>
<div class="son">123</div>
<div class="son">123</div>
</div>
</body>
</html>
<script>
var father = document.getElementById("father");
// father.firstChild.style.backgroundColor = "gray";
var first = father.firstElementChild || father.firstChild; // 兼容得到 第一个亲儿子
var last = father.lastElementChild || father.lastChild; // 兼容得到最后一个儿子
first.style.backgroundColor = "gray";
last.style.backgroundColor = "gray";
</script>
3.4 孩子们1
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="demo">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
</body>
</html>
<script>
var demo = document.getElementById("demo");
// alert(demo.childNodes.length); // 结果是 7 个 ,包含了 4个 换行
var nodes = demo.childNodes; // 获取了所有的孩子节点 包含 div 包含 换行等等 7
for(var i=0;i<nodes.length;i++) {
if(nodes[i].nodeType == 1) { // nodetype 是1 表示 元素节点
nodes[i].style.backgroundColor = "red";
}
}
</script>
3.5 孩子们2
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="demo">
<div>1</div>
<div>2</div>
<div>3</div>
<div>3</div>
<!--我是注释-->
<!--<div>3</div>-->
</div>
</body>
</html>
<script>
var demo = document.getElementById("demo");
// alert(demo.children.length);
var child = demo.children; // demo 里面所有的 标签
alert(child.length);
child[0].style.backgroundColor = "red"; // 第一个孩子
child[child.length-1].style.backgroundColor = "red"; // 最后一个孩子
</script>
4.dom操作
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="demo">
<div class="one"></div>
</div>
</body>
</html>
<script>
var demo = document.getElementById("demo");
var test = document.createElement("div"); // 创建了一个新的div
// a.appendChild(b) 把b放到a 里面
demo.appendChild(test); // 把test 追加到 demo 里面
</script>
4.1 点击动态生成li
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<button id="btn">点击</button>
<ul id="demo">
</ul>
</body>
</html>
<script>
var btn =document.getElementById("btn");
var demo = document.getElementById("demo");
btn.onclick = function() {
var newLi = document.createElement("li"); // 新li
demo.appendChild(newLi);
}
</script>
4.2 插入节点
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="demo">
<div id="xiongda"></div>
</div>
</body>
</html>
<script>
var demo = document.getElementById("demo");
var newDiv = document.createElement("div"); // 新div
var xiongda = document.getElementById("xiongda");
demo.appendChild(newDiv);
var newSpan = document.createElement("span");
demo.insertBefore(newSpan,newDiv); // 1 参数 插入的子节点 2 参数 参照节点
</script>
4.3 设置属性
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
.box {
width: 100px;
height: 100px;
background-color: pink;
}
</style>
</head>
<body>
<div id="demo" class="demo">
<div id="xiongda"></div>
</div>
</body>
</html>
<script>
var demo = document.getElementById("demo");
var newDiv = document.createElement("div"); // 新div
var xiongda = document.getElementById("xiongda");
demo.appendChild(newDiv);
var newSpan = document.createElement("span");
demo.insertBefore(newSpan,newDiv); // 1 参数 插入的子节点 2 参数 参照节点
newDiv.setAttribute("class","box"); // 等价于 newDiv.className = "box"
demo.removeAttribute("class");
</script>
4.4 设置多个css属性cssText
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div></div>
</body>
</html>
<script>
var div = document.getElementsByTagName("div")[0];
/* div.style.width = '100px';
div.style.height = '100px';
div.style.backgroundColor = 'pink';*/
div.style.cssText = "width:100px;height:100px; background-color:purple";
</script>
4.5 删除节点
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="demo">
<div id="one"></div>
</div>
</body>
</html>
<script>
var demo = document.getElementById("demo");
var one = document.getElementById("one");
demo.removeChild(one);
</script>
4.6 复制节点
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="demo">
<div id="damao"></div>
<div id="ermao"></div>
</div>
</body>
</html>
<script>
var demo = document.getElementById("demo");
// demo.cloneNode(true); // 克隆节点
demo.parentNode.appendChild(demo.cloneNode(true));
</script>
5.日期、定时器
5.1 声明日期函数
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
var date = new Date(); // 创建日期
console.log(date); // Mon Jul 10 2017 05:25:37 GMT+0800 (CST)
console.log(date.getMonth()+1); // 7 月份从0开始所以要+1
console.log(date.getFullYear());// 2017
</script>
5.2 日历
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
.date {
width: 200px;
height: 220px;
background-color: #369;
margin: 100px auto;
text-align: center;
padding-top:25px;
}
.date span {
color: white;
}
.date p {
width: 120px;
height: 120px;
background-color: darkorange;
margin:50px auto 0;
line-height: 120px;
font-size: 70px;
}
</style>
</head>
<body>
<div class="date" id="date">
<span></span>
<p></p>
</div>
</body>
</html>
<script>
var box = document.getElementById("date"); // 最大盒子
var date = new Date(); // 声明 创建 日期
var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; // date.getDate获取这个星期的第几日。从星期日开始算的。
box.children[1].innerHTML = date.getDate();
box.children[0].innerHTML = date.getFullYear() + "年" + (date.getMonth()+1) + "月" +
date.getDate() + "日 " + arr[date.getDay()];
</script>
5.3 定时器
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
setInterval("console.log('你好吗')",1000); // 每隔一秒钟输出一次你好吗
</script>
5.4 获取毫秒数的几种方法
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
var date = new Date();
console.log(date.getTime()); //1499637296786
console.log(date.valueOf()); // 1499637296786
console.log(Date.now()); // 1499637296786
console.log(+new Date()); // 1499637296786
</script>
5.5 倒计时
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
div {
font-size:30px;
color: red;
text-align: center;
}
</style>
</head>
<body>
<div id="demo"></div>
</body>
</html>
<script>
var demo = document.getElementById("demo");
var endTime = new Date("2018/12/12 17:30:00"); // 目标时间
setInterval(timer,1000); // 每隔1000毫秒就调用一次 timer 这个 函数
// 根据相差的毫秒数,计算出天数小时分钟等等。
function timer() {
var nowDate = new Date(); // 现在时间 getTime得到是毫秒 / 10000 后 得到的是秒
var second = parseInt((endTime.getTime() - nowDate.getTime()) / 1000); // 根据现在和目标的秒差可以算出相差的时分秒,一小时3600秒。
// 还剩下多少时间 单位是秒
// console.log(second);
var d = parseInt(second / 3600 / 24); // 天数 second / 3600 得 小时 / 24 的天数
//console.log(d); // %24 得到剩余的 h 。 24小时为一天,一个周期。
var h = parseInt(second / 3600 % 24); // 小时 用总的小时数 %24 不超过24小时,一天24小时一个周期,取余就是不足的周期有多少小时
console.log(h)
var m = parseInt(second / 60 % 60); // 分钟 不超过 60分 一分有60秒,一分60秒为一个周期。分数取余,得到不足的周期分钟数
console.log(m);
var s = second % 60; // 还剩下秒数
总结:周期取余得到不足的数。如以总的小时%24得出不足的小时的数量
console.log(s);
d<10 ? d = "0" + d : d; // 小于10 的时候我们给与 补 0 a++ 不同于 a= a + 1
h<10 ? h = "0" + h : h;
m<10 ? m = "0" + m : m;
s = s<10 ? "0"+s : s;
function flag(obj) {
return obj = obj<10 ? "0" + obj : obj;
}
demo.innerHTML = "距离抢购还剩下" + d + "天" + h + "小时" + m + "分" + s + "秒";
demo.innerHTML = "距离抢购还剩下" + flag(d) + "天" + h + "小时" + m + "分" + s + "秒";
}
</script>
6.运算符
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
console.log(0||1); // 1 || 前面错的,后面对的 返回后面
console.log(1||0); // 1 || 两个都对返回前面的
console.log(1||5); // 1
console.log(5||1); // 5
var a = 0 || 1 || 2;
var b = 1 || 0 || 3;
console.log(a),console.log(b); // 1 1
var a = 1+4&&3; // 3 && 前面是对的,返回后面的结果
var b = 0&& 3+1; // 0 && 前面是错的,直接返回前面
var c= 1 || 2 && 5-1; // 1
alert(a),alert(b),alert(c);
</script>
7.字符串
7.1 转换成字符串
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
var num = 10;
console.log(typeof typeof num); // "number"
console.log("num"); // 是 num 不是 "10"
console.log(typeof (num+ "")); // string
console.log(typeof String(num)); // string
var test = 19;
console.log(typeof (test.toString())); // string
var demo = 10;
console.log(demo.toString(2)); // 把 demo 里面值 转换为 2进制 1010
</script>
7.2根据位置返回字符
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
var txt = "abcdefg";
alert(txt.charAt(3)); // 返回 索引号3 的 字符 d
var demo = "今天是周末";
alert(demo.charAt(2)); // 返回 是
alert(txt.charCodeAt(3)); // 返回的是相应的 字符 的 unicode 编码 100
alert(demo.charCodeAt(2)); // 26159
</script>
7.3 检测字符串长度
<script>
var txt = "what are you 伐木累!";
//如果是英文等字母就+1,如果是汉字就 +2
function getStringlenght(string){
var code = 0;
var len = 0;
for(var i =0;i<string.length;i++){
code = string.charCodeAt(i);
if(code>=0 && code<=127){ // 表示这是英文
len++;
}else{
len + =2 ; //表示这是汉字 长度+2
}
}
return len;
}
console.log(getStringLenght(txt));
</script>
7.3根据字符串返回位置
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
var txt = "今天是周末是很开心的一天啊";
alert(txt.indexOf("是"));
alert(txt.lastIndexOf("是")); // 从后面往前面找, 找到后,索引号 数的时候从前面往后数
</script>
7.4 url编码和解码
为什么要进行url编码:http://www.cnblogs.com/jerrysion/p/5522673.html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
var url = "localhost:itcast.cn? name=andy";
var str = encodeURIComponent(url); // 编码的过程
console.log(str); // localhost%3Aitcast.cn%3F%20name%3Dandy
console.log(decodeURIComponent(str)); // 解码 localhost:itcast.cn? name=andy
</script>
7.4 截取字符串
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script>
window.onload = function() {
var div1 = document.getElementById("div1").innerHTML;
var div2 = document.getElementById("div2").innerHTML;
function onButtonClick(id,txt) {
document.getElementById(id).onclick = function() {
this.nextSibling.innerHTML = txt; //按钮的下一个兄弟是 span
}
}
// slice
onButtonClick("btn1",div1.concat(div2));
onButtonClick("btn2",div1.slice(3)); // 从3开始截取div1
onButtonClick("btn3",div1.slice(3,6)); // 从3开始截取div1 到6
onButtonClick("btn4",div1.slice(-1)); // 从3开始截取div1 到6
// substr
onButtonClick("btn5",div1.substr(3)); // 从3开始截取div1
onButtonClick("btn6",div1.substr(3,6)); // 从3开始截取div1
onButtonClick("btn7",div1.substr(-1)); // 从3开始截取div1
onButtonClick("btn8",div1.substr(div1.length-1,1));
// div1.length-1 是最后一个字母
// substring
onButtonClick("btn9",div1.substring(3));
onButtonClick("btn10",div1.substring(3,6));
onButtonClick("btn11",div1.substring(6,3));
onButtonClick("btn12",div1.substring(-1));
}
</script>
</head>
<body>
<div id="div1">my name is andy!</div>
<div id="div2">what's your name?</div>
<button id="btn1">concat</button><span></span> <br/>
<button id="btn2">slice(3)</button><span></span> <br/>
<button id="btn3">slice(3,6)</button><span></span> <br/>
<button id="btn4">slice(-1)</button><span></span> <br/>
<button id="btn5">substr(3)</button><span></span> <br/>
<button id="btn6">substr(3,6)</button><span></span> <br/>
<button id="btn7">substr(-1)</button><span></span> <br/>
<button id="btn8">substr(-1兼容写法)</button><span></span> <br/>
<button id="btn9">substring(3)</button><span></span> <br/>
<button id="btn10">substring(3,6)</button><span></span> <br/>
<button id="btn11">substring(6,3)</button><span></span> <br/>
<button id="btn12">substring(-1)</button><span></span> <br/>
</body>
</html>
7.5 保留小数
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
var PI = 3.1415;
console.log(PI.toFixed(2)); // 3.14 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
</script>
7.6转换大小写
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
请输入: <input type="text" id="txt"/> <button id="btn">发布</button>
<h1 id="big">输入大标题</h1>
<span id="small">小标题</span>
</body>
</html>
<script>
function $(id) {return document.getElementById(id);}
$("btn").onclick = function() {
$("big").innerHTML = $("txt").value.toUpperCase(); // 转换为大写
$("small").innerHTML = $("txt").value.toLowerCase() // 转换为小写
}
</script>
7.8 验证上传文件
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="file" name="" id="file"/><span></span> <!--文件域-->
</body>
</html>
<script>
var file = document.getElementById("file");
file.onchange = function() { // 下拉列表
// alert(11);
// alert(this.value); // c://imags/1.png1
// 我们要开始进行判断 我们上传的文件是否是合法的
// 1.jpg 1.jepg 1.JPG 1.JPEG 都是合法的
// 1.doc.jpg 也是对的
// 后缀名 我们应该从 后面开始找 .
var path = this.value;
// 得到完整路径 c://imags/1.png
var suffix = path.substr(path.lastIndexOf(".")).toUpperCase(); // 取后缀名
//alert(suffix);
// path.lastIndexOf(".") "c://imags/1.png".lastIndexOf(".") == 12
//path.substr(12) "c://imags/1.png".substr(12); .png
if(suffix == ".JPG" || suffix == ".JPEG" || suffix == ".PNG") {
this.nextSibling.innerHTML = "格式正确";
}
else {
this.nextSibling.innerHTML = "格式不正确";
}
}
</script>
8.简单模拟jquery$选择器
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
div {
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div id="demo">1</div>
<div>2</div>
<div>2</div>
<div class="test">3</div>
<div>2</div>
<div class="test">3</div>
<div>2</div>
<div>2</div>
<div>2</div>
<div>2</div>
</body>
</html>
<script>
function getClassName(classname) { // 形参
// 先看看浏览器支不支持
if(document.getElementsByClassName) { // 如果支持这个写法
return document.getElementsByClassName(classname); // 直接返回所有元素
}
// 下面的语句是ie678 执行
// 核心思想 把所有的标签都取过来, 然后一个一个的判断当前元素的类名是不是 classname
//是就留下,不是 就走开
// alert(11);
var arr = []; //数组用来存储满足条件的 元素
var dom = document.getElementsByTagName("*"); // 把所有的标签都取过来 * 所有的
// 去过所有的标签之后, 把 每一个标签的类名 (字符串) 转换为数组 , 只有数组才可以遍历
for(var i=0;i<dom.length;i++) { // 遍历每一个标签
// 把每一个标签的类名 转换为数组
var arrName = dom[i].className.split(" "); // "demo nav test" = ["demo","nav","test"];
// var arrName = ["demo","nav","test"]; // 用来存储每一个 类名的数组
for(var j=0;j<arrName.length;j++) { // 遍历 arrname
if(arrName[j] == classname) { // 判断
arr.push(dom[i]); // 把当前满足条件的元素 给 arr
}
}
}
return arr; // 返回总的数组
}
/* $('#demo') jquery 里面的
$('.demo')
$("div")*/
function $(str) {
var s = str.charAt(0); // 相当于 取 # . d 取 符号
var ss = str.substr(1); // 相当于 demo test iv 除了符号
switch(s) {
case "#":
return document.getElementById(ss);
break;
case ".":
return getClassName(ss);
break;
default :
return document.getElementsByTagName(str);
}
}
$("#demo").style.backgroundColor = "red";
for(var i=0;i<$(".test").length;i++)
{
$(".test")[i].style.backgroundColor = 'purple';
}
console.log($("div").length);
</script>