Dom基础


window.document.documentElement - 全部文档,整个窗体的顶级对象  最顶端

document.body - 文档的主体


一、注册事件

 注意:document.getElementById('btn1').οnclick=F1 此处的F1不要加括号 ,给btn1注册onclick事件

,再点击btn1触发onclick事件调用F1()方法


警告框 、确定 取消 demo 返回true 或false

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
	   <script type="text/javascript">
			window.οnlοad=function(){
				document.getElementById('btn1').οnclick=function(){
					if(window.confirm('Are you sure?')){
						alert('delete win');
					}
					else{
						alert("delete lose");
					}
				};
			};
    </script>
</head>
<body>
	<input type="button" name="name" value="button" id="btn1"></input>
</body>
</html>

二、导航到指定页面和刷新页面

window.location.href('http://www.baidu.com')   -----兼容性相对较好

window.location.reload();------刷新页面


三、计时器

  <script type="text/javascript">
			window.setInterval(function(){
				alert('你好');
			},1000);
    </script>
一秒执行一次alert('你好');

<script type="text/javascript">
			var setId=setInterval(function(){
				alert('你好');
			},1000);
			clearInterval(setId);//计时器被销毁了
    </script>
销毁计时器

一次性计时器

   <script type="text/javascript">
		 var setid=setTimeout(function(){
				alert('hello');
			},1000);
			clearTimeout(setid);
    </script>
只执行一次但是还是要清除,因为它还是会继续暂用内存。

	<script type="text/javascript">
			setInterval(function(){
				var txt=document.title;
				document.title=txt.substr(1)+txt.charAt(0);
			},1000);
    </script>

标题实现跑马灯式的效果


四、加载的几个事件

window.onload  -----页面加载

window.onbeforeload----页面被关闭前

window.onunload----页面被关闭后

五、window.event 属性

主要的属性见下图


String(window.screen.width)+'*'+String(window.screen.height) 获取屏幕分辨率


五、事件冒泡

如果元素A嵌套在元素B中,那么A被点击不仅A的onclick事件会被触发,B的onclick也会被触发,触发的顺序被‘由内而外’

his和window.event.srcElement的区别-----------------谁触发了事件和谁最先触发事件的区别

 //取消事件冒泡

 window.event.cancelBubble = true;


六、动态创建元素

    <script type="text/javascript">
 
        window.onload = function () {
            document.getElementById('btn').onclick = function () {
                //创建层
                var dvobj = document.createElement('div');
                var btnobj = document.createElement('input');
                btnobj.type = 'button';
                btnobj.value = 'Click me';
                dvobj.style.backgroundColor = 'blue';
                dvobj.style.width = '300px';
                dvobj.style.height = '200px';
                dvobj.style.border = '1px solid red';
                //添加文字
                dvobj.innerText = 'Hello';
                dvobj.appendChild(btnobj);
                //把层添加到body中
                document.body.appendChild(dvobj);
            }
        }
    </script>


移除节点demo

    <script type="text/javascript">
         
        window.onload = function () {
            document.getElementById('btn').onclick = function () {
                var btnobj=document.createElement('input');
                btnobj.type = 'button';
                btnobj.value = 'create first ';
                document.getElementById('dv').appendChild(btnobj);
            }
            document.getElementById('btndel').onclick = function () {
                var dvobj = document.getElementById('dv');
                while (dvobj.firstChild) {
                    dvobj.removeChild(dvobj.firstChild);
                }
            }
        }
    </script>


innerText和innerHtml的区别

innerText:显示的文本内容

innerHtml:显示的是文本和标签


七、动态创建表格、超链接

    <script type="text/javascript">
        var dic = {"百度":"http://www.baidu.com","CSDN":"http://www.csdn.net/","谷歌":"http://www.google.com"};
        window.onload = function () {
            document.getElementById('btn').onclick = function () {
                //创建表
                var tbobj = document.createElement('table');
                tbobj.border = '1px';
                for (var key in dic) {
                    //创建行
                    var trobj = document.createElement('tr');
                    var td1obj = document.createElement('td');
                    td1obj.innerText = key;
                    var td2obj = document.createElement('td');
                    td2obj.innerHTML = '<a href="' + dic[key] + '">' + dic[key] + '</a>';
                    trobj.appendChild(td1obj);
                    trobj.appendChild(td2obj);
                    tbobj.appendChild(trobj);
                }
                document.body.appendChild(tbobj);
            }
        }
        </script>

八、css选择器

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title ></title>
    <style type="text/css">
        .cls {
            background-image:url(1.png);
            background-repeat:no-repeat;
            width:300px;
            height:200px;
            border:1px solid red;
        }
         .cls1 {
            background-repeat:no-repeat;
            background-color:blue;
        }
    </style>

    <script type="text/javascript">
        window.onload = function () {
            document.getElementById('btn').onclick = function () {
                document.getElementById('dv').className = 'cls cls1';
            }
        }
    </script>
</head>
<body>
    <input type="button" name="name" value=" light" id="btn" />
    <div  id="dv"></div>
</body>
</html>

批量选择对象赋值给数组,集体注册事件

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title ></title>
    <style type="text/css">
    
    </style>

    <script type="text/javascript">
        window.onload = function () {
            var inputobjes = document.getElementsByTagName('input');
            for (var i = 0; i < inputobjes.length; i++) {
                inputobjes[i].onblur = function () {
                    if (this.value=='') {
                        this.style.backgroundColor = 'red';
                    } else {
                        this.style.backgroundColor = '';//还原为默认颜色
                    }
                }
            }
        }
    </script>
</head>
<body>
    <input type="text" name="name" style="width:200px" />
    <input type="text" name="name" style="width:200px" />
    <input type="text" name="name" style="width:200px" />
    <input type="text" name="name" style="width:200px" />
    <input type="text" name="name" style="width:200px" />
    <input type="text" name="name" style="width:200px" />
</body>
</html>

层的显示和隐藏

分清style.display='none'和style.visibility='hidden'的区别

style.display='none'------完全清空

style.visibility='hidden'------仅仅是隐藏

鼠标移动到超链接a,显示一个层,,离开层消失

    <script type="text/javascript">
        var dvobj;
        window.onload = function () {
            var aobj = document.getElementById('a');
            aobj.onmouseover = function () {
                dvobj = document.createElement('div');
                dvobj.style.width = '300px';
                dvobj.style.height = '200px';
                dvobj.style.border = '1px solid red';
                dvobj.style.backgroundImage = 'url(1.png)';
                dvobj.style.backgroundRepeat = 'no-repeat';
                dvobj.style.position = 'absolute';
                dvobj.style.left = this.offsetLeft + 'px';
                dvobj.style.top = this.offsetTop + this.offsetHeight + 'px';
                document.body.appendChild(dvobj);
            }
            aobj.onmouseleave = function () {
                if (dvobj == undefined) {

                } else {
                    dvobj.style.display = 'none';
                }
            }
        }
    </script>


密码强弱判断的demo,使用正则表达式

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        window.onload = function () {
            document.getElementById('txtpwd').onkeydown = function () {
                var tds = document.getElementsByTagName('td');
                for (var i = 0; i < tds.length; i++) {
                    tds[i].style.backgroundColor = '#808080';
                }
                var txtvalue = this.value;
                if (txtvalue.length >0) {
                    var i = checkPwd(txtvalue);
                    if (i <= 1) {
                        document.getElementsByTagName('td')[0].style.backgroundColor = 'orange';
                    } else if (i==2) {
                        document.getElementsByTagName('td')[0].style.backgroundColor = 'yellow';
                        document.getElementsByTagName('td')[1].style.backgroundColor = 'yellow';
                    } else if (i==3){
                        document.getElementsByTagName('td')[0].style.backgroundColor = 'red';
                        document.getElementsByTagName('td')[1].style.backgroundColor = 'red';
                        document.getElementsByTagName('td')[2].style.backgroundColor = 'red';
                    }
                }
               
            }
            
        }
        function checkPwd(pwdvalue) {
            var len = 0;
            if (pwdvalue.match(/\d/))
            {
                len++;
            }
            if (pwdvalue.match(/[a-zA-Z]/)) {
                len++;
            }
            if (pwdvalue.match(/[^a-zA-Z0-9]/)) {
                len++;
            }
            return len;
        }
    </script>
</head>
<body>
    <input id="txtpwd" type="password" name="name"   />
    <table border="1" style="width:300px;text-align:center;background-color:#808080">
        <tr>
            <td>弱</td>
            <td>中</td>
            <td>强</td>
        </tr>
    </table>
</body>
</html>

省市联动

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        window.onload = function () {
            var datas = {
                "吉林": ["长春", "四平", "松原"],
                "山东": ["青岛", "济南", "烟台"],
                "山西": ["大同", "太原", "运城"]
            };
            var defau = '山东';
            for (var key in datas) {
                var ops1 = document.createElement('option');
                ops1.innerText = key;
                if (ops1.innerText == defau)
                {
                    ops1.selected = true;
                }
                document.getElementById('s1').appendChild(ops1);
            }
            for (var i = 0; i < datas[defau].length; i++) {
     
                var ops2 = document.createElement('option');
                ops2.innerText = datas[defau][i];
                document.getElementById('s2').appendChild(ops2 );
            }

            document.getElementById('s1').onchange = function () {
                while (document.getElementById('s2').firstChild) {
                    document.getElementById('s2').removeChild(document.getElementById('s2').firstChild);

                }
                var defau = document.getElementById('s1').value;
                for (var i = 0; i <datas[defau].length; i++) {
                    var ops2 = document.createElement('option');
                    ops2.innerText = datas[defau][i];
                    document.getElementById('s2').appendChild(ops2);
                }
            }
        }
    </script>
</head>
<body>
    省:
    <select id="s1">
        
    </select>
    市:
    <select id="s2">
        
    </select>
</body>
</html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值