一、DOM简介
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。
可以将每个HTML标签都做为一个对象,JavaScript通过调用DOM中的属性、方法就可以对网页中的文本框、层等元素进行编程控制。
选择器:
-
document.getElementById('id')
-
document.getElementsByName('name')
-
document.getElementsByTagName('tagname')
实例演示一、修改单个标签中的文本内容。
1 2 3 4 5 6 7 8 9 10 | < div id = "n1" > < p >hello aaaaaa</ p > </ div > < script type = "text/javascript" > <!-- 通过标签ID获取到标签对象 --> var name1 = document.getElementById('n1'); <!-- 修改标签文本内容为'tuchao' --> name1.innerText = 'tuchao'; </ script > |
实例演示二、通过标签name修改多个标签的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | < div id = "n1" > < p >hello aaaaaa</ p > </ div > < hr /> < div name = "n2" > < p >heheheheeeeeee</ p ></ div > < hr /> < div name = "n2" > < p >bbabababbabab</ p ></ div > < script type = "text/javascript" > <!-- 通过标签name获取到标签对象 --> var name2 = document.getElementsByName('n2'); <!-- 当获取到多个同name标签时,则通过序号来区别,name2[0]表示第一个,name2[1]则表示第二个 --> name2[0].innerText = 'tuchao'; name2[1].innerText = 'tuchao'; </ script > |
页面效果:
实例演示三、通过标签tag修改多个标签的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | < div id = "n1" > < p >hello aaaaaa</ p > </ div > < hr /> < div name = "n2" > < p >heheheheeeeeee</ p ></ div > < hr /> < div name = "n2" > < p >bbabababbabab</ p ></ div > < script type = "text/javascript" > <!-- 通过标签tag获取到标签对象 --> var name3 = document.getElementsByTagName('div'); <!-- 对该对象进行循环,逐一取出每个对象进行修改 --> for (var item in name3){ name3[item].innerText = 'elephant' } </ script > |
页面效果:
常用函数:
-
创建标签
document.createElement('a')
-
获取或者修改样式
obj.className
-
获取或设置属性
setattribute(key,val) getattribute(key)
-
获取或修改样式中的属性
obj.style.属性
-
提交表单
document.geElementById('form_id').submit()
实例演示四、在标签中加入内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | < div id = "n1" > < p >hello aaaaaa</ p > </ div > < script type = "text/javascript" > <!-- 创建一个a标签 --> var tag = document.createElement("a"); <!-- 给创建的标签赋予链接 --> tag.href = ' <!-- 给标签设置文本字符 --> tag.innerText = '点希望'; var id1 = document.getElementById('n1'); <!-- 给id1对象添加标签 --> id1.appendChild(tag); </ script > |
页面效果:
实例演示五、标签替换
1 2 3 4 5 6 7 8 9 10 11 | < div id = "n1" > < p >hello aaaaaa</ p > </ div > < script type = "text/javascript" > <!-- 创建标签对象 --> var tag = "< a href = 'http://www.baidu.com' >百度一下</ a >" var id1 = document.getElementById('n1'); <!-- 替换标签 --> id1.innerHTML = tag; </ script > |
页面效果会显示原id="n1"的div标签消失了,替换成了自定义的超链接标签。
实例演示六、修改标签的Class
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <!DOCTYPE html> < html lang = "en" > < head > < meta http-equiv = "Content-Type" charset = "UTF-8" content = "text/html" > < title >js_st1</ title > < style type = "text/css" > .hide {display: none;} .n22 {color:red;} </ style > </ head > < body > < div class = "n22" name = "n2" > < p >heheheheeeeeee</ p ></ div > < hr /> < div name = "n2" > < p >bbabababbabab</ p ></ div > < script type = "text/javascript" > var id2 = document.getElementsByName('n2'); <!-- 将原样式n22替换为hide样式 --> id2[0].className = 'hide' </ script > </ body > </ html > |
此时第一个div在页面中将不会显示了
实例演示七、修改标签的name值
1 2 3 4 5 6 7 8 9 10 11 | < div id = "n3" name = "dog" > </ div > < script type = "text/javascript" > <!-- 通过id获取到标签对象 --> var id3 = document.getElementById('n3'); <!-- 使用log打印原name值 --> console.log(id3.getAttribute('name')); <!-- 修改标签的name值为'cow' --> id3.setAttribute('name','cow'); console.log(id3.getAttribute('name')); </ script > |
页面效果:
实例演示八、修改标签样式
1 2 3 4 5 6 7 8 9 10 | < div style = "width:500px; height:300px; border:solid black 1px" id = "n3" name = "dog" > </ div > < script type = "text/javascript" > var id3 = document.getElementById('n3'); <!-- 获取该标签的宽度 --> var w = id3.style.width; console.log(w); <!-- 修改样式 --> id3.style.width = '200px' </ script > |
页面效果:修改前
页面效果:修改后
常用事件:
实例演示九、创建按钮点击事件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | < form id = "F1" action = 'https://www.baidu.com/s?' method = "GET" > <!-- 这里的wd是传给后端程序的value --> < input type = 'text' name = 'wd' /> <!-- 定义点击事件,对应Foo()函数 --> < input type = 'button' value = '按钮提交' onclick = 'Foo();' /> </ form > < script type = "text/javascript" > <!-- 定义点击函数内容,提交'F1'对象表单 --> function Foo (){ document.getElementById('F1').submit() } </ script > |
常用方法:
-
定义一个函数每隔一定的时间自动执行一次,括号中左边写执行的函数名逗号分割,右边写间隔的时长单位为毫秒。
setInterval('Foo()',20)
-
用于停止setInterval的循环执行,这个函数括号中接受的参数为setInterval函数返回的值。
clearInterval(interval)
-
定义一个函数间隔一定的时间自动执行,与setInterval函数不同的是这个方法只让函数执行一次。
setTimeout('Go()',10000)
-
用于取消setTimeout函数的执行,函数接受的参数是setTimeout函数返回的值。
clearTimeout()
搜索框实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <!DOCTYPE html> < html lang = "en" > < head > < meta http-equiv = "Content-Type" charset = "UTF-8" content = "text/html" > < title >搜索框实例</ title > < style type = "text/css" > .gray{color: gray; height: 30px; width: 220px; } .black{ color: black; height: 30px; width: 220px; } </ style > </ head > < body > < input type = 'text' class = 'gray' id = 'tip' value = '请输入关键词' onfocus = 'Enter();' onblur = 'Leave();' /> < script type = "text/javascript" > function Enter(){ var id = document.getElementById('tip'); id.className = 'black' if(id.value=='请输入关键词' || id.value.trim()==''){ id.value = '' } } function Leave(){ var id = document.getElementById('tip'); if(id.value=='请输入关键词' || id.value.trim()==''){ id.value='请输入关键词' id.className='gray' }else{ id.className='black' } } </ script > </ body > </ html > |
跑马灯实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <!DOCTYPE html> < html lang = "en" > < head > < meta http-equiv = "Content-Type" charset = "UTF-8" content = "text/html" > < title >跑马灯 哈哈和进度条 </ title > < style type = "text/css" > </ style > </ head > < body > < script type = "text/javascript" > function Go(){ <!-- 获取title文本内容 --> var content = document.title; <!-- 获取内容的第一个字符 --> var firstChar = content.charAt(0) <!-- 获取title的第二个至最后一个字符 --> var sub = content.substring(1,content.length) document.title = sub + firstChar; } setInterval('Go()',1000); </ script > </ body > </ html > |
进度条实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <!DOCTYPE html> < html lang = "en" > < head > < meta http-equiv = "Content-Type" charset = "UTF-8" content = "text/html" > < title >跑马灯 哈哈和进度条 </ title > < style type = "text/css" > </ style > </ head > < body > < div style = "width:1000px;background-color:gray" > < div id = 'jindu' style = "width:10%;background-color:red;height:20px;" ></ div > </ div > < div > < input type = 'button' value = '点击停止' onclick = 'Stop();' /> </ div > < script type = "text/javascript" > pro = 10 function Foo(){ var id = document.getElementById('jindu'); pro = pro + 1; if(pro > 100){ clearInterval(interval) }else{ id.style.width = pro+'%'; } } interval = setInterval('Foo()',20) <!-- 定义停止函数,用于停止进度条 --> function Stop(){ clearInterval(interval) } </ script > </ body > </ html > |