前端三贱客 -- JavaScript中的DOM元素

2021-02-16 12:17

阅读:670

标签:元素   asd   mode   z-index   clear   接口   user   classname   下拉框   

文档对象模型(Document Object Model,DOM)是一种用于HTML编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。DOM相当于是一个模块,提供了关于HTML文档中对标签进行操作的功能,JavaScript结合DOM可以对HTML中的标签进行操作。可以把DOM看做是一张映射表,记录着一堆用代码操控document时的规章制度,直白点说,就是js操作html时的API。

DOM选择器

DOM中提供了一系列的选择器用于在HTML文档中找到指定的相关标签对象。

直接查找

1 document.getElementById(arg)             // 根据ID获取一个标签对象
2 document.getElementsByClassName(arg)     // 根据class属性获取标签对象集合
3 document.getElementsByName(arg)          // 根据name属性值获取标签对象集合
4 document.getElementsByTagName(arg)       // 根据标签名获取标签对象集合

示例一:

技术图片技术图片
 1 DOCTYPE html>
 2 html>
 3 head>
 4     title>Dom Testtitle>
 5     style type="text/css">
 6         .c1{
 7             background-color: red;
 8             width: 400px;
 9             height: 200px;
10         }
11         .c2{
12             font-size: 20px;
13             color: white;
14             text-align: center;
15             line-height: 200px;
16         }
17     style>
18 head>
19 body>
20     input type="text" name="username" id="id1" size="20">br>
21     input type="text" name="username" size="20">br>
22     input type="text" name="username" size="20">br>
23     div id="i2">this is a divdiv>
24     a href="">111a>
25     a href="">222a>
26     div class="c1 c2">Hello Kugou!div>
27     input type="button" onclick="func1()" value="点我getElementById">
28     input type="button" onclick="func2()" value="点我getElementsByName">
29     input type="button" onclick="func3()" value="点我change div value">
30     input type="button" onclick="func4()" value="点我getElementsByTagName">
31     input type="button" onclick="func5()" value="点我getElementsByClassName">
32     script type="text/javascript">
33         function func1(){
34             var username_id = document.getElementById("id1");
35             console.log(username_id.value);
36             alert(username_id.value);
37         }
38         function func2(){
39             var username = document.getElementsByName("username");
40             for(var i=0;i  username.length;i++){
41                 console.log(username[i].value);
42                 alert(username[i].value)
43             }
44         }
45         function func3(){
46             var x = document.getElementById("i2");
47             x.innerText="Hello Kugou!";
48         }
49         function func4(){
50             /* body... */
51             var a_list=document.getElementsByTagName("a");
52             for (var i = 0;ia_list.length;i++){
53                 var var1 = a_list[i].innerText;
54                 a_list[i].innerText=var1 + "AAA";
55             }
56         }
57         function func5(){
58             var var_sty = document.getElementsByClassName("c1");
59             console.log(var_sty);
60             var_sty[0].style.backgroundColor = #00ff00;
61         }
62     script>
63 body>
64 html>
View Code

间接查找

1 var tag = document.getElementById(arg);
2 tag.parentElement           // 找当前标签对象的父标签对象
3 tag.children                // 找当前标签对象的所有子标签对象
4 tag.firstElementChild       // 找当前标签对象的第一个子标签对象
5 tag.lastElementChild        // 找当前标签对象最后一个子标签对象
6 tag.nextElementtSibling     // 找当前标签对象下一个兄弟标签对象
7 tag.previousElementSibling  // 找当前标签对象上一个兄弟标签对象

示例二:

技术图片技术图片
 1 head>
 2     title>title>
 3     style type="text/css">
 4         table {
 5           /*   border: 1px solid; */
 6             border-collapse: collapse;
 7         }
 8 
 9         table th, table td{
10             border: 1px solid;
11             padding : 8px;
12         }
13         table th {
14             font-weight: bold;
15         }
16     style>
17 head>
18 body>
19     table>
20         thead>
21             tr>
22                 th>主机ipth>
23                 th>端口号th>
24                 th>备注th>
25                 th>操作th>
26             tr>
27         thead>
28         tbody>
29             tr>
30                 td>1.1.1.1td>
31                 td>80td>
32                 td>web端口td>
33                 td>input type="button" value="删除" onclick="deleteRow(this)">td>
34             tr>
35             tr>
36                 td>2.2.2.2td>
37                 td>3306td>
38                 td>MySQL端口td>
39                 td>input type="button" value="删除" onclick="deleteRow(this)">td>
40             tr>
41             tr>
42                 td>2.2.2.2td>
43                 td>6379td>
44                 td>Redis端口td>
45                 td>input type="button" value="删除" onclick="deleteRow(this)">td>
46             tr>
47         tbody>
48     table>
49     script type="text/javascript">
50         function deleteRow(self){
51             var rowTr = self.parentElement.parentElement;
52             // alert(rowTr.value);
53             rowTr.remove();
54         }
55     script>
View Code

DOM文本操作

对标签内部文本进行操作时,可以通过 innerText 和 innerHTML来进行。

innerText

    标签对象.innerText,读取标签内容(仅文本)。
    标签对象.innerText="武",修改标签内容(仅文本)。

innerHTML

    标签对象.innerHTML,读取标签内容(含标签)。
    标签对象.innerText="武",修改标签内容(可标签、课文本)。

示例三

技术图片技术图片
 1 DOCTYPE html>
 2 html>
 3 head>
 4     title>title>
 5     style type="text/css">
 6         table {
 7             border-collapse: collapse;
 8         }
 9         table th, table td{
10             border: 1px solid;
11             padding: 8px;
12         }
13         table td{
14             font-size: 18px;
15         }
16         a{
17             text-decoration: none;
18         }
19         a:link {color:#FF0000;}    /* 未被访问的链接 */
20         a:visited {color:#00FF00;} /* 已被访问的链接 */
21         a:hover {color:#FF00FF;}   /* 鼠标指针移动到链接上 */
22         a:active {color:#0000FF;}  /* 正在被点击的链接 */
23     style>
24 head>
25 body>
26     table>
27         thead>
28             tr>
29                 th>IDth>
30                 th>网站链接th>
31                 th>网站介绍th>
32                 th>读取th>
33             tr>
34         thead>
35         tbody>
36             tr>
37                 td>1td>
38                 td>a href="https://www.kugou.com">酷狗a>td>
39                 td>Hello Kugou 就是歌多td>
40                 td>
41                     input type="button" name="" value="读取网站innerText" onclick="readSite(this)">
42                     input type="button" name="" value="读取完整innerHTML" onclick="readSummary(this)">
43                 td>
44             tr>
45         tbody>
46     table>
47     script type="text/javascript">
48         function readSite(self){
49             var inner_text_01 = self.parentElement.previousElementSibling.previousElementSibling;
50             alert(inner_text_01.innerText);
51             inner_text_01.innerText="百度";
52             var inner_text_02 = self.parentElement.previousElementSibling;        
53             alert(inner_text_02.innerText)
54             inner_text_02.innerText=百度一下 你就知道        
55         }
56         function readSummary(self){
57             var inner_HTML = self.parentElement.previousElementSibling.previousElementSibling;
58             alert(inner_HTML.innerHTML)
59             inner_HTML.innerHTML="百度" 
60         }
61     script>
62 body>
63 html>
View Code

DOM值操作

文本框

技术图片技术图片
1 body>
2     input type="text" name="username" value="请输入用户名XXX" id="user">
3     script type="text/javascript">
4         var username = document.getElementById("user")
5         console.log("获取文本框值",username.value)
6         username.value = "nuanhuang"
7         console.log("更新文本框值",username.value)
8     script>
9 body>
View Code

多行文本框

技术图片技术图片
 1 h3>个人简介h3>
 2 textarea id="article" cols="30" rows="10">不以物喜,不以己悲,先天下之忧而忧,后天下之乐而乐
 3 textarea>br>
 4 input type="button" value="获取" onclick="get()">
 5 input type="button" value="更新" onclick="update()">
 6 script type="text/javascript">
 7     function get() {
 8         // body...
 9         var contents = document.getElementById("article")
10         alert(contents.value) 
11     }
12     function update() {
13         var contents = document.getElementById("article")
14         contents.value = "瞎扯淡"
15     }
16 script>
View Code

下拉框

技术图片技术图片
 1     h3>居住地h3>
 2     select id="city" >
 3         option value="0">北京option>
 4         option value="1">上海option>
 5         option value="2" selected="selected">广州option>
 6         option value="3">深圳option>
 7     select>
 8     input type="button" value="获取居住地" onclick="getCity()">
 9     input type="button" value="更新" onclick="updateCity()">
10     script type="text/javascript">
11         function getCity() {
12             // body...
13             var city = document.getElementById("city")
14             switch (city.value) {
15                 case "0":
16                     alert(北京)
17                     break;
18                 case "1":
19                     alert(上海)
20                     break;
21                 case "2":
22                     alert(广州)
23                     break;
24                 case "3":
25                     alert(深圳)
26                     break;
27                 default:
28                     // statements_def
29                     alert(未知城市)
30                     break;
31             }
32         }
33         function updateCity() {
34             var city = document.getElementById("city")
35             city.value = 0
36         }
37     script>
View Code

单选框

技术图片技术图片
 1 h3>性别h3>
 2 input type="radio" name="gender" checked="checked" value=0> 3 input type="radio" name="gender" value=1> 4 br>
 5 input type="button" value="显示值" onclick="getGender()">
 6 input type="button" value="更新值" onclick="updateGender()">
 7 script type="text/javascript">
 8     function getGender(){
 9         var gender = document.getElementsByName("gender")
10         for(var i = 0;i  gender.length;i++){
11             if(gender[i].checked){
12                 alert(gender[i].value);
13             }
14         }
15     }
16     function updateGender(){
17         var gender = document.getElementsByName("gender")
18         for(var i = 0;i  gender.length;i++){
19             if(gender[i].value == "1"){
20                 alert(xxx)
21                 gender[i].checked = true;
22             }
23         }
24     }
25 script>
View Code

复选框

技术图片技术图片
 1 h3>爱好h3>
 2 input type="checkbox" class="favi" value="0">篮球 
 3 input type="checkbox" class="favi" value="1">足球
 4 input type="checkbox" class="favi" value="2">羽毛球
 5 input type="checkbox" class="favi" value="3">乒乓球
 6 br>
 7 input type="button" value="显示值" onclick="getFavi()">
 8 input type="button" value="反选" onclick="updateFavi()">
 9 script type="text/javascript">
10     function getFavi(){
11         var valueList = []
12         var faviList = document.getElementsByClassName("favi")
13         for(var i=0;ifaviList.length;i++){
14             if(faviList[i].checked){
15                 valueList.push(faviList[i].value)
16             }
17         }
18         console.log(valueList)
19         alert(valueList)
20     }
21     function updateFavi(){
22         var faviList = document.getElementsByClassName("favi")
23         for(var i=0;ifaviList.length;i++){
24             if(faviList[i].checked){
25                 faviList[i].checked = false;
26             }else {
27                 faviList[i].checked = true;
28             }
29         }
30     }
31 script>
View Code

表格

技术图片技术图片
 1 table>
 2     thead>
 3         tr>
 4             th>选择th>
 5             th>姓名th>
 6             th>年龄th>
 7         tr>
 8     thead>
 9     tbody id="tb">
10         tr>
11             td>input type="checkbox" value="0">td>
12             td>李白td>
13             td>18td>
14         tr>
15         tr>
16             td>input type="checkbox" value="1">td>
17             td>杜甫td>
18             td>20td>
19         tr>
20         tr>
21             td>input type="checkbox" value="2">td>
22             td>王维td>&


评论


亲,登录后才可以留言!