python之路17:DOM

概述

文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。

 查找元素

1、找到标签
获取单个元素 document.getElementById('i1')
获取多个元素(列表)document.getElementsByTagName('div')
获取多个元素(列表)document.getElementsByClassName('c1')
a. 直接找
document.getElementById 根据ID获取一个标签
document.getElementsByName 根据name属性获取标签集合
document.getElementsByClassName 根据class属性获取标签集合
document.getElementsByTagName 根据标签名获取标签集合

b. 间接找
tag = document.getElementById('i1')
parentElement // 父节点标签元素
children // 所有子标签
firstElementChild // 第一个子标签元素
lastElementChild // 最后一个子标签元素
nextElementtSibling // 下一个兄弟标签元素
previousElementSibling // 上一个兄弟标签元素

parentNode           / /  父节点
childNodes           / /  所有子节点
firstChild           / /  第一个子节点
lastChild            / /  最后一个子节点
nextSibling          / /  下一个兄弟节点
previousSibling      / /  上一个兄弟节点

操作标签

a. innerText
获取标签中的文本内容
标签.innerText

对标签内部文本进行重新复制
标签.innerText = ""

b. className
tag.className =》 直接整体做操作
tag.classList.add('样式名') 添加指定样式
tag.classList.remove('样式名') 删除指定样式

c. checkbox
获取值
checkbox对象.checked
设置值
checkbox对象.checked = true

其它操作

console.log                    输出框

alert                        弹出框

confirm                      确认框
  
// URL和刷新
location.href                获取URL
location.href =  "url"              重定向
location.reload()           重新加载
  
// 定时器
setInterval                 多次定时器
clearInterval               清除多次定时器
setTimeout                  单次定时器
clearTimeout                清除单次定时器
 

注册事件

事件:比如有一个“按钮”,当你点击的时候发生什么,双击的时候发生什么,这个就叫做事件!

注册:首先这个按钮,当你点击的时候发生的动作,上面的事件要使他出现我们想要的效果,首先得把事件和函数进行绑定,然后把他们注册到指定标签上。

对于事件需要注意的要点:

  • this
  • event
  • 事件链以及跳出

this标签当前正在操作的标签,event封装了当前事件的内容。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>shuaige_js_file</title>
    <!--导入javascript脚本方法-->
    <!--<script type="text/javascript" src="t1.js "></script>-->
    <style>
        .color_red {
            background-color: red;
        }
    </style>
</head>
<body>
<div id="id_1">
</div>

<!--下面的input标签:onclick是个事件他等于一个函数,就是事件和函数进行绑定,应用到标签中就是注册到标签中-->
<input type="button" onclick="edit();" value="修改"/>
<input type="button" onclick="rollback();" value="回滚"/>

<script type="text/javascript">
    function edit() {
        var i = document.getElementById('id_1');
        i.className = 'color_red';
    }

    function rollback() {
        var i = document.getElementById('id_1');
        i.className = ''; //这里只要给他设置为空即可
    }
</script>

</body>
</html>
修改、回滚
 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8 <input type="button" value="全选" onclick="CheckAll();"/>
 9 <input type="button" value="取消" onclick="CancelAll();"/>
10 <input type="button" value="反选" onclick="ReverseCheck();"/>
11 
12 <table border="1">
13     <thead>
14 
15     </thead>
16     <tbody id="tb">
17     <tr>
18         <td><input type="checkbox"/></td>
19         <td>111</td>
20         <td>222</td>
21     </tr>
22     <tr>
23         <td><input type="checkbox"/></td>
24         <td>111</td>
25         <td>222</td>
26     </tr>
27     <tr>
28         <td><input type="checkbox"/></td>
29         <td>111</td>
30         <td>222</td>
31     </tr>
32     <tr>
33         <td><input type="checkbox"/></td>
34         <td>111</td>
35         <td>222</td>
36     </tr>
37     </tbody>
38 </table>
39 <script>
40     function CheckAll(ths) {
41         var tb = document.getElementById('tb');
42         var trs = tb.childNodes;
43         for (var i = 0; i < trs.length; i++) {
44 
45             var current_tr = trs[i];
46             if (current_tr.nodeType == 1) {
47                 var inp = current_tr.firstElementChild.getElementsByTagName('input')[0];
48                 inp.checked = true;
49             }
50         }
51     }
52 
53     function CancelAll(ths) {
54         var tb = document.getElementById('tb');
55         var trs = tb.childNodes;
56         for (var i = 0; i < trs.length; i++) {
57 
58             var current_tr = trs[i];
59             if (current_tr.nodeType == 1) {
60                 var inp = current_tr.firstElementChild.getElementsByTagName('input')[0];
61                 inp.checked = false;
62             }
63         }
64     }
65 
66     function ReverseCheck(ths) {
67         var tb = document.getElementById('tb');
68         var trs = tb.childNodes;
69         for (var i = 0; i < trs.length; i++) {
70             var current_tr = trs[i];
71             if (current_tr.nodeType == 1) {
72                 var inp = current_tr.firstElementChild.getElementsByTagName('input')[0];
73                 if (inp.checked) {
74                     inp.checked = false;
75                 } else {
76                     inp.checked = true;
77                 }
78             }
79         }
80     }
81 
82 </script>
83 </body>
84 </html>
全选反选取消
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset='utf-8'/>
 5     <title></title>
 6 
 7     <style>
 8         .gray {
 9             color: gray;
10         }
11 
12         .black {
13             color: black;
14         }
15     </style>
16 </head>
17 <body>
18 <!--input标签内注注册了两个事件(onfocus/onblur并且事件已经绑定了函数)-->
19 <input type='text' class='gray' id='tip' value='请输入关键字' onfocus='Enter();' onblur='Leave();'/>
20 <script type="text/javascript">
21     function Enter() { //函数Enter的作用,当元素获得焦点就把里面的值设置为空并把颜色设置为黑色
22         var id = document.getElementById("tip"); //找到id为tip的标签并赋值给id
23         id.className = 'black'; //给id的class设置为black
24         if (id.value == '请输入关键字' || id.value.trim() == '') {
25             id.value = ''
26         } //判断找到的标签的value='请输入关键里'或者你输入的内容为空
27     }
28 
29     function Leave() { //函数Leave的作用,当元素失去焦点就把里面的值设置为"请输入关键字"并把颜色设置为灰色
30         var id = document.getElementById("tip"); //找到id为tip的标签病赋值为id
31         var val = id.value; //把id的value属性赋值为val
32         if (val.length == 0 || id.value.trim() == '') {
33             id.value = '请输入关键字';
34             id.className = 'gray';
35         } else {
36             id.className = 'black';
37         } //判断如果val的长度为0,或者用户输入为空字符,把id的value设置为"请输入关键字"
38           //否则把id.class设置为black
39     }
40 </script>
41 </body>
42 </html>
搜索框
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>欢迎大佬莅临指导&nbsp;&nbsp;</title>
 6     <!--跑马灯实例-->
 7     <script type="text/javascript">
 8         function run() { //定义一个函数
 9             var content = document.title; //获取title的内容
10             var firstChar = content.charAt(0); //获取content第一个元素
11             var sub = content.substring(1, content.length); //获取content字符串剩余的元素
12             document.title = sub + firstChar; //对字符串进行新的拼接
13         }
14 
15         setInterval('run()', 1000); //使用interval每秒执行然后达到跑马灯的目的
16     </script>
17 </head>
18 <body>
19 
20 
21 </body>
22 </html>
跑马灯

参考: 

http://www.cnblogs.com/alex3714

http://www.cnblogs.com/wupeiqi

internet&python books

PS:如侵权,联我删。

猜你喜欢

转载自www.cnblogs.com/BillyLV/p/11215943.html