一、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
<code><</code><code>div</code> <code>id</code><code>=</code><code>"n1"</code><code>></code>
<code><</code><code>p</code><code>>hello aaaaaa</</code><code>p</code><code>></code>
<code></</code><code>div</code><code>></code>
<code><</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>></code>
<code><!-- 通过标签ID获取到标签对象 --></code>
<code>var name1 = document.getElementById('n1');</code>
<code><!-- 修改标签文本内容为'tuchao' --></code>
<code>name1.innerText = 'tuchao';</code>
<code></</code><code>script</code><code>></code>
实例演示二、通过标签name修改多个标签的内容
11
12
13
14
15
<code><</code><code>hr</code><code>/></code>
<code><</code><code>div</code> <code>name</code><code>=</code><code>"n2"</code><code>> <</code><code>p</code><code>>heheheheeeeeee</</code><code>p</code><code>></</code><code>div</code><code>></code>
<code><</code><code>div</code> <code>name</code><code>=</code><code>"n2"</code><code>> <</code><code>p</code><code>>bbabababbabab</</code><code>p</code><code>></</code><code>div</code><code>></code>
<code><!-- 通过标签name获取到标签对象 --></code>
<code>var name2 = document.getElementsByName('n2');</code>
<code><!-- 当获取到多个同name标签时,则通过序号来区别,name2[0]表示第一个,name2[1]则表示第二个 --></code>
<code>name2[0].innerText = 'tuchao';</code>
<code>name2[1].innerText = 'tuchao';</code>
页面效果:
<a href="http://s5.51cto.com/wyfs02/M02/7A/FC/wKioL1bEMIDT76I9AAAG4wS6txc583.png" target="_blank"></a>
实例演示三、通过标签tag修改多个标签的内容
16
17
<code><!-- 通过标签tag获取到标签对象 --></code>
<code>var name3 = document.getElementsByTagName('div');</code>
<code><!-- 对该对象进行循环,逐一取出每个对象进行修改 --></code>
<code>for (var item in name3){</code>
<code> </code><code>name3[item].innerText = 'elephant'</code>
<code> </code><code>}</code>
<a href="http://s5.51cto.com/wyfs02/M00/7A/FC/wKioL1bEMqyi1N_jAAAEH6wzSMg981.png" target="_blank"></a>
常用函数:
创建标签
document.createElement('a')
获取或者修改样式
obj.className
获取或设置属性
setattribute(key,val) getattribute(key)
获取或修改样式中的属性
obj.style.属性
提交表单
document.geElementById('form_id').submit()
实例演示四、在标签中加入内容
<code><!-- 创建一个a标签 --></code>
<code>var tag = document.createElement("a");</code>
<code><!-- 给创建的标签赋予链接 --></code>
<code>tag.href = '</code>
<code> </code><code><!-- 给标签设置文本字符 --></code>
<code>tag.innerText = '点希望';</code>
<code>var id1 = document.getElementById('n1');</code>
<code><!-- 给id1对象添加标签 --></code>
<code>id1.appendChild(tag);</code>
<a href="http://s2.51cto.com/wyfs02/M01/7A/FD/wKiom1bEOjWxVENhAAAC5BDH8aE193.png" target="_blank"></a>
实例演示五、标签替换
<code><!-- 创建标签对象 --></code>
<code>var tag = "<</code><code>a</code> <code>href</code><code>=</code><code>'http://www.baidu.com'</code><code>>百度一下</</code><code>a</code><code>>"</code>
<code><!-- 替换标签 --></code>
<code>id1.innerHTML = tag;</code>
页面效果会显示原id="n1"的div标签消失了,替换成了自定义的超链接标签。
实例演示六、修改标签的Class
18
19
20
21
22
23
24
<code><!DOCTYPE html></code>
<code><</code><code>html</code> <code>lang</code><code>=</code><code>"en"</code><code>></code>
<code><</code><code>head</code><code>></code>
<code> </code><code><</code><code>meta</code> <code>http-equiv</code><code>=</code><code>"Content-Type"</code> <code>charset</code><code>=</code><code>"UTF-8"</code> <code>content</code><code>=</code><code>"text/html"</code><code>></code>
<code> </code><code><</code><code>title</code><code>>js_st1</</code><code>title</code><code>></code>
<code> </code><code><</code><code>style</code> <code>type</code><code>=</code><code>"text/css"</code><code>></code>
<code> </code><code>.hide {display: none;}</code>
<code> </code><code>.n22 {color:red;}</code>
<code> </code><code></</code><code>style</code><code>></code>
<code></</code><code>head</code><code>></code>
<code><</code><code>body</code><code>></code>
<code> </code><code><</code><code>div</code> <code>class</code><code>=</code><code>"n22"</code> <code>name</code><code>=</code><code>"n2"</code><code>> <</code><code>p</code><code>>heheheheeeeeee</</code><code>p</code><code>></</code><code>div</code><code>></code>
<code> </code><code><</code><code>hr</code><code>/></code>
<code> </code><code><</code><code>div</code> <code>name</code><code>=</code><code>"n2"</code><code>> <</code><code>p</code><code>>bbabababbabab</</code><code>p</code><code>></</code><code>div</code><code>></code>
<code>var id2 = document.getElementsByName('n2');</code>
<code><!-- 将原样式n22替换为hide样式 --></code>
<code>id2[0].className = 'hide'</code>
<code></</code><code>script</code><code>> </code>
<code></</code><code>body</code><code>></code>
<code></</code><code>html</code><code>></code>
此时第一个div在页面中将不会显示了
实例演示七、修改标签的name值
<code><</code><code>div</code> <code>id</code><code>=</code><code>"n3"</code> <code>name</code><code>=</code><code>"dog"</code><code>> </</code><code>div</code><code>></code>
<code><!-- 通过id获取到标签对象 --></code>
<code>var id3 = document.getElementById('n3');</code>
<code><!-- 使用log打印原name值 --></code>
<code>console.log(id3.getAttribute('name'));</code>
<code><!-- 修改标签的name值为'cow' --></code>
<code>id3.setAttribute('name','cow');</code>
<a href="http://s4.51cto.com/wyfs02/M01/7A/FD/wKioL1bERcHC_WC5AAAtAWRMTsw355.png" target="_blank"></a>
实例演示八、修改标签样式
<code><</code><code>div</code> <code>style</code><code>=</code><code>"width:500px; height:300px; border:solid black 1px"</code> <code>id</code><code>=</code><code>"n3"</code> <code>name</code><code>=</code><code>"dog"</code><code>> </</code><code>div</code><code>></code>
<code><!-- 获取该标签的宽度 --></code>
<code>var w = id3.style.width;</code>
<code>console.log(w);</code>
<code><!-- 修改样式 --></code>
<code>id3.style.width = '200px'</code>
页面效果:修改前
<a href="http://s1.51cto.com/wyfs02/M02/7A/FD/wKioL1bESOSRizCOAAAM3SpJY_o215.png" target="_blank"></a>
页面效果:修改后
<a href="http://s1.51cto.com/wyfs02/M00/7A/FD/wKioL1bESO-ijmHyAAAEdRqevg8430.png" target="_blank"></a>
常用事件:
<a href="http://s1.51cto.com/wyfs02/M01/7A/FE/wKiom1bEbrPChngOAAOLKOkh7Gc125.png" target="_blank"></a>
实例演示九、创建按钮点击事件
<code><</code><code>form</code> <code>id</code><code>=</code><code>"F1"</code> <code>action</code><code>=</code><code>'https://www.baidu.com/s?'</code> <code>method</code><code>=</code><code>"GET"</code><code>></code>
<code> </code><code><!-- 这里的wd是传给后端程序的value --></code>
<code> </code><code><</code><code>input</code> <code>type</code><code>=</code><code>'text'</code> <code>name</code><code>=</code><code>'wd'</code> <code>/></code>
<code> </code><code><!-- 定义点击事件,对应Foo()函数 --></code>
<code> </code><code><</code><code>input</code> <code>type</code><code>=</code><code>'button'</code> <code>value</code><code>=</code><code>'按钮提交'</code> <code>onclick</code><code>=</code><code>'Foo();'</code> <code>/></code>
<code></</code><code>form</code><code>></code>
<code><!-- 定义点击函数内容,提交'F1'对象表单 --></code>
<code>function Foo (){</code>
<code> </code><code>document.getElementById('F1').submit()</code>
<code>}</code>
常用方法:
定义一个函数每隔一定的时间自动执行一次,括号中左边写执行的函数名逗号分割,右边写间隔的时长单位为毫秒。
setInterval('Foo()',20)
用于停止setInterval的循环执行,这个函数括号中接受的参数为setInterval函数返回的值。
clearInterval(interval)
定义一个函数间隔一定的时间自动执行,与setInterval函数不同的是这个方法只让函数执行一次。
setTimeout('Go()',10000)
用于取消setTimeout函数的执行,函数接受的参数是setTimeout函数返回的值。
clearTimeout()
搜索框实例
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
<code> </code><code><</code><code>title</code><code>>搜索框实例</</code><code>title</code><code>></code>
<code> </code><code>.gray{color: gray;</code>
<code> </code><code>height: 30px;</code>
<code> </code><code>width: 220px;</code>
<code> </code><code>}</code>
<code> </code><code>.black{</code>
<code> </code><code>color: black;</code>
<code> </code><code>height: 30px;</code>
<code> </code><code>width: 220px;</code>
<code> </code>
<code><</code><code>input</code> <code>type</code><code>=</code><code>'text'</code> <code>class</code><code>=</code><code>'gray'</code> <code>id</code><code>=</code><code>'tip'</code> <code>value</code><code>=</code><code>'请输入关键词'</code> <code>onfocus</code><code>=</code><code>'Enter();'</code> <code>onblur</code><code>=</code><code>'Leave();'</code> <code>/></code>
<code> </code><code><</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>></code>
<code> </code><code>function Enter(){</code>
<code> </code><code>var id = document.getElementById('tip');</code>
<code> </code><code>id.className = 'black'</code>
<code> </code><code>if(id.value=='请输入关键词' || id.value.trim()==''){</code>
<code> </code><code>id.value = ''</code>
<code> </code><code>}</code>
<code> </code><code>function Leave(){</code>
<code> </code>
<code> </code><code>id.value='请输入关键词'</code>
<code> </code><code>id.className='gray'</code>
<code> </code><code>}else{</code>
<code> </code><code>id.className='black'</code>
<code> </code><code></</code><code>script</code><code>></code>
跑马灯实例
<code> </code><code><</code><code>title</code><code>>跑马灯&nbsp;&nbsp;哈哈和进度条&nbsp;&nbsp;</</code><code>title</code><code>></code>
<code> </code><code>function Go(){</code>
<code> </code><code><!-- 获取title文本内容 --></code>
<code> </code><code>var content = document.title;</code>
<code> </code><code><!-- 获取内容的第一个字符 --></code>
<code> </code><code>var firstChar = content.charAt(0)</code>
<code> </code><code><!-- 获取title的第二个至最后一个字符 --></code>
<code> </code><code>var sub = content.substring(1,content.length)</code>
<code> </code><code>document.title = sub + firstChar;</code>
<code>setInterval('Go()',1000);</code>
进度条实例
<code> </code><code><</code><code>div</code> <code>style</code><code>=</code><code>"width:1000px;background-color:gray"</code><code>></code>
<code> </code><code><</code><code>div</code> <code>id</code><code>=</code><code>'jindu'</code> <code>style</code><code>=</code><code>"width:10%;background-color:red;height:20px;"</code><code>></</code><code>div</code><code>></code>
<code> </code><code></</code><code>div</code><code>></code>
<code> </code><code><</code><code>div</code><code>></code>
<code> </code><code><</code><code>input</code> <code>type</code><code>=</code><code>'button'</code> <code>value</code><code>=</code><code>'点击停止'</code> <code>onclick</code><code>=</code><code>'Stop();'</code> <code>/></code>
<code>pro = 10</code>
<code>function Foo(){</code>
<code> </code><code>var id = document.getElementById('jindu');</code>
<code> </code><code>pro = pro + 1;</code>
<code> </code><code>if(pro > 100){</code>
<code> </code><code>clearInterval(interval)</code>
<code> </code><code>}else{ </code>
<code> </code><code>id.style.width = pro+'%';</code>
<code>interval = setInterval('Foo()',20)</code>
<code><!-- 定义停止函数,用于停止进度条 --></code>
<code>function Stop(){</code>
<code> </code><code>clearInterval(interval)</code>
本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1742721