学习笔记及代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>封装函数</title>
<script>
/* id document.getElementById()
tagName node.getelementsByTagName()
name document,getelementsByName()
className document.getElementsByClassName() */
/*
通过封装函数 简化上诉操作。
封装一个函数,可以拥有上述几种获取元素节点的功能
【注】CSS选择器
#id 通过id获取原色节点
.class 通过className获取元素节点
tagName 通过tagName获取元素节点
name = XXX 通过name获取元素节点
*/
function $(vArg){
//<1>对参数进行区分。
switch(vArg[0]){
case"#":
return document.getElementById(vArg.substring(1));
break;
case".":
return elementByClassName(document,vArg.substring(1));
break;
default:
//
var str = vArg.substring(0,5);
if(str == "name="){
return document.getElementsByName(vArg.substring(5));
}else{
return document.getElementsByTagName(vArg);
}
break;
}
}
function elementByClassName(parent,classStr){
//<1>找到parent下所有元素节点
var nodes = parent.getElementsByTagName('*')
var result = [];
for(var i = 0;i<nodes.length;i++){
//<2>如果符合条件,添加到数组
if(nodes[i].className == classStr){
result.push(nodes[i]);
}
}
return result;
}
window.onload = function(){
alert($("#div1").innerHTML);
alert($(".box").length);
alert($(".box")[1].innerHTML);
alert($("div").length);
alert($("name=hello")[0].innerHTML);
alert($("name = hello").length);
}
</script>
</head>
<body>
<div id="div1">1111111</div>
<div class="box">2222222</div>
<div class="box">3333333</div>
<div name = "hello">4444444</div>
</body>
</html>