摘要:经过本章节学习了DOM方法获取元素分别为:1、根据id属性获取元素, 1.1 document根据id获取元素用.getElementById('ID')方法;返回获取到对应ID的元素数组对象。【注意】:运用ID选择器中不可像使用类名那样重复别名,CSS样式没问题。但DOM中 .getElementById('
经过本章节学习了DOM方法获取元素分别为:
1、根据id属性获取元素,
1.1 document根据id获取元素用.getElementById('ID')方法;返回获取到对应ID的元素数组对象。
【注意】:运用ID选择器中不可像使用类名那样重复别名,CSS样式没问题。但DOM中 .getElementById('ID')方法只能找到一个。
1.2 对所获取的数组对象操作方法:
document.getElementById('ID').style.……
2、根据name属性获取元素;
2.1:使多name为表单中元素和图片,内联框架。
2.2:name属性更多的用于表单数据提交到服务器时,用来识别提交的内容,可以在客户端先对name作基础验证再提交。
2.3:document.getElementsByName('username')方法返回所有name为 username的元素对象数组;
2.4:对所获取的对象后面加上 [下标]对应的元素进行操作。
document.getElementsByName('login')[下标].style......
3、根据标签名称获取元素;
3.1:页面中根据标签名称获取用:document.getElementsByTagName('div') ,此方法返回所有div标签集合。
3.2 对所获取到的标签集合使用方法:
document.getElementsByTagName('div') [下标].style......
document.getElementsByTagName('div') .item(0).style......
4、根据class属性来获取元素,
4.1 document.getElementsByClassName('classname')对页面中获取到所有classname类的html标签元素,返回元素集合对象数组。
4.2 还可以对父类集合数组中再获取子级类
document.getElementsByClassName('父类名')[下标].getElementsByClassName('子类名').item(下标);
4.3 getElementsByClassName使用方法:
document.getElementsByTagName('div')[下标].style................
document.getElementsByTagName('div').item(下标).style................
5、getElement其它方法:
5.1
根据 css选择器来获取元素,
document.querySelectorAll('ul')//获取所有ul,将返回数象数组。用下标访问对应的元素
document.querySelector('.classname')//获取所有classname,将返回对象数组。用下标访问对应的元素
document.querySelector('#idName')//收于id别名要求要不能一致,就算有id别名重复也只返第一个id,
//需要使用时后面加下标[0]即可。
5.2根据类名和name属性快捷获取元素
图片
document.images[下标],document.images['name属性'],document.images.name属性;
表单
document.forms[下标],document.forms.item[下标],document.forms['name值'],document.forms.name值.
链接
document.links[下标], document.links[name值], document.links.name值;
body
document.dody.style.......因为body只有一个不需要下标操作;
head
document.head.appendChild.....
document.documentElement整个html窗口。
document.doctype 文档类型。
更多未提到的后续把手册都看一遍或者会去查。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.clear{ clear:both}
ul{width: 200px;height: 150px;border:1px solid #ccc;float: left;margin-left: 20px;}
.ulroot span{margin-left: 100px;}
.ulroot{float: left;margin-left:10px;}
.formDiv{margin-top: 10px;border:1px solid #ccc;}
</style>
</head>
<body>
<ul id="styleUl0">
<li id="style1_1">我的ID是style1_1</li>
<li id="style1_2">我的ID是style1_2</li>
<li id="style1_3">我的ID是style1_3</li>
<li id="style1_4">我的ID是style1_4</li>
<li id="style1_5">我的ID是style1_5</li>
</ul>
<ul id = "stylesetClassUl">
<li id="style2_1">我的ID是style2_1</li>
<li id="style2_2">我的ID是style2_2</li>
<li id="style2_3">我的ID是style2_3</li>
<li id="style2_4">我的ID是style2_4</li>
<li id="style2_5">我的ID是style2_5</li>
</ul>
<ul id="styleUl2">
<li id="style3_1">我的ID是style3_1</li>
<li id="style3_2">我的ID是style3_2</li>
<li id="style3_3">我的ID是style3_3</li>
<li id="style3_4">我的ID是style3_4</li>
<li id="style3_5">我的ID是style3_5</li>
</ul>
<div style="width:100%;height:200px;border:1px solid #ccc;float:left;">
<h3>对元素id操作</h3>
<div>
<span>用id改变ul背景</span><button onclick="resetUl(0)">确定</button><br><br>
<span>用id改变li背景</span><button onclick="resetli(0)">确定</button>
</div>
<div>
<span>用id改变ul背景</span><button onclick="resetUl(1)">确定</button><br><br>
<span>用id改变ul背景</span><button onclick="resetli(1)">确定</button>
</div>
<div>
<span>用id改变li背景</span><button onclick="resetUl(2)">确定</button><br><br>
<span>用id改变li背景</span><button onclick="resetli(2)">确定</button>
</div>
</div>
<div></div>
<!-- 根据name操作元素 -->
<div>
<h3>对元素name操作</h3>
<form action="" style="width:600px;float:left">
<input type="text" name="username"> 我的name是username<br>
<input type="password" name="password"> 我的name是password<br>
<button name="button">提交</button>我的name是button <br>
<input type="text" name="username">我的name跟前面哥们一样username <br>
<input type="text" name="username">我的name跟前面哥们一样username <br>
<input type="text" name="username">我的name跟前面哥们一样username <br>
</form>
<div style="width:400px;border:1px soid #ccc;margin-top:10px; float:left; margin-left:100px;">
对name为password变色<br>
<button onclick="passSet()">一个name操作</button><br>
对name为username 变色操作<br>
<button onclick="userNameSet()">多个name操作</button>
</div>
<div></div>
</div>
<div>
<h3>DOM对标签名操作</h3>
<form action="" style="width:600px;float:left">
<input type="text" name="username"> 我的name是username<br>
<input type="password" name="password"> 我的name是password<br>
<button name="button">提交</button>我的name是button <br>
<input type="text" name="username">我的name跟前面哥们一样username <br>
<input type="text" name="username">我的name跟前面哥们一样username <br>
<input type="text" name="username">我的name跟前面哥们一样username <br>
</form>
<div style="width:400px;border:1px soid #ccc;margin-top:10px; float:left; margin-left:100px;">
对标签为form变色
<button onclick="tagSet('form')">form操作</button><br>
对标签为input变色
<button onclick="tagSet('input')">input操作</button><br>
对标签为button变色
<button onclick="tagSet('button')">button操作</button><br>
对标签为span变色
<button onclick="tagSet('span')">span操作</button><br>
对标签为body变色
<button onclick="tagSet('body')">body操作</button><br>
</div>
<div></div>
</div>
<ul>
<li>我的class是style1_1</li>
<li id="style1_2">我的ID是style1_2</li>
<li>我的class是style1_1</li>
<li id="style1_4">我的ID是style1_4</li>
<li>我的class是style1_1</li>
</ul>
<ul>
<li id="style2_1">我的ID是style2_1</li>
<li>我的class是style2_1</li>
<li id="style2_3">我的ID是style2_3</li>
<li>我的class是style2_1</li>
<li id="style2_5">我的ID是style2_5</li>
</ul>
<ul>
<li>我的class是style3_1</li>
<li>我的class是style3_1</li>
<li>我的class是style3_1</li>
<li>我的class是style3_1</li>
<li>我的class是style3_1</li>
</ul>
<div style="width:100%;height:200px;border:1px solid #ccc;float:left;">
<h3>对标签Class操作</h3>
<div>
<span>用class改变setClassUl背景</span><button onclick="setUlClass(0)">确定</button><br><br>
<span>用class改变li背景</span><button onclick="setLiClass(0)">确定</button>
</div>
<div>
<span>用class改变ul2背景</span><button onclick="setUlClass(1)">确定</button><br><br>
<span>用class改变li背景</span><button onclick="setLiClass(1)">确定</button>
</div>
<div>
<span>用class改变所有ul背景</span><button onclick="setUlClass(2)">确定</button><br><br>
<span>用class改变li背景</span><button onclick="setLiClass(2)">确定</button>
</div>
</div>
<div></div>
<script type="text/javascript">
// 改变ul背景
function resetUl(pId) {
//使用id获取ul元素
let styleUl0 = document.getElementById('styleUl0');
let stylesetClassUl = document.getElementById('stylesetClassUl');
let styleUl2 = document.getElementById('styleUl2');
switch(pId)
{
case 0:
styleUl0.style.backgroundColor = 'coral';
break;
case 1:
stylesetClassUl.style.backgroundColor = 'red';
break;
case 2:
styleUl2.style.backgroundColor = 'yellow';
break;
}
}
// 改变li背景
function resetli(pId) {
//使用id获取li元素
let style1_1 = document.getElementById('style1_1');
let style1_2 = document.getElementById('style1_2');
let style1_3 = document.getElementById('style1_3');
let style1_4 = document.getElementById('style1_4');
let style1_5 = document.getElementById('style1_5');
let style2_1 = document.getElementById('style2_1');
let style2_2 = document.getElementById('style2_2');
let style2_3 = document.getElementById('style2_3');
let style2_4 = document.getElementById('style2_4');
let style2_5 = document.getElementById('style2_5');
let style3_1 = document.getElementById('style3_1');
let style3_2 = document.getElementById('style3_2');
let style3_3 = document.getElementById('style3_3');
let style3_4 = document.getElementById('style3_4');
let style3_5 = document.getElementById('style3_5');
switch(pId)
{
case 0:
getElements('style1_1','style1_3','style1_4');
break;
case 1:
getElements('style2_1','style2_2','style2_5');
break;
case 2:
getElements('style3_3','style3_1','style3_2');
break;
}
}
//用止函数可以对多个id获取元素
function getElements(){
//创建一个空的对象来保存结果
let elements = {};
//arguments.length表示函数参数个数
for(let i=0;i<arguments.length;i++){
let id = arguments[i];
let elt = document.getElementById(id);
if(elt ===null){
throw new Error("No element with id:"+id);
}
elements[id]=elt;
}
for(let key in elements){
elements[key].style.backgroundColor ='#ccc'
}
}
// **************************对name操作部分**************************************************
// 对name为password的操作
function passSet(){
let pass = document.getElementsByName('password')[0];
pass.style.backgroundColor = 'yellow';
}
//对name为username的元素操作
function userNameSet(){
let username = document.getElementsByName('username');
for (var i = username.length - 1; i >= 0; i--) {
username[i].style.backgroundColor = 'yellow';
}
}
// ****************************对标签操作部分**************************************************
function tagSet(tagname){
let tag=document.getElementsByTagName(tagname)
let tagLeng=tag.length;
for (var i = tagLeng - 1; i >= 0; i--) {
switch(tagname){
case 'form':
tag[i].style.backgroundColor = '#B452CD'
break;
case 'input':
tag[i].style.backgroundColor = '#A6A6A6'
break;
case 'button':
tag.item(i).style.backgroundColor = '#9932CC'
break;
case 'span':
tag[i].style.backgroundColor = '#76EE00'
break;
case 'body':
tag[i].style.backgroundColor = '#0000EE'
break;
}
}
}
// *******************************对类名操作部分************************************************
let setClassUl = document.getElementsByClassName('ulClass');
function setUlClass(classid){
switch(classid){
case 0:
setClassUl[0].style.backgroundColor = 'red';
break;
case 1:
setClassUl.item(1).style.backgroundColor = 'blue';
break;
case 2:
for (var i = setClassUl.length - 1; i >= 0; i--) {
setClassUl[i].style.backgroundColor = '#ff6700'
}
break;
}
}
function setLiClass(classid){
let list1=setClassUl[0].getElementsByClassName('style1_1');
let list2=setClassUl[1].getElementsByClassName('style2_1');
let list3 = document.getElementsByClassName('style3_1');
switch(classid){
case 0:
for (var i = list1.length - 1; i >= 0; i--) {
list1[i].style.backgroundColor = '#ccc'
}break;
case 1:
for (var i = list2.length - 1; i >= 0; i--) {
list2[i].style.backgroundColor ='#668B8B';
}break;
case 2:
for (var i = list3.length - 1; i >= 0; i--) {
list3[i].style.backgroundColor = '#7FFF00';
}
break;
}
}
</script>
</body>
</html>
批改老师:天蓬老师批改时间:2019-01-04 16:03:50
老师总结:作业完成的相当的精彩, 对于选择器的总结也非常的到位, 看来是用心了, js中的几个重要的dom元素, 例如 document对象,它上面的常用属性和方法, 非常多,更多内容,可以参考mdn网站