天天看点

DOM编程

一、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>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"n1"</code><code>&gt;</code>

<code>&lt;</code><code>p</code><code>&gt;hello aaaaaa&lt;/</code><code>p</code><code>&gt;</code>

<code>&lt;/</code><code>div</code><code>&gt;</code>

<code>&lt;</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>&gt;</code>

<code>&lt;!-- 通过标签ID获取到标签对象 --&gt;</code>

<code>var name1 = document.getElementById('n1');</code>

<code>&lt;!-- 修改标签文本内容为'tuchao' --&gt;</code>

<code>name1.innerText = 'tuchao';</code>

<code>&lt;/</code><code>script</code><code>&gt;</code>

实例演示二、通过标签name修改多个标签的内容

11

12

13

14

15

<code>&lt;</code><code>hr</code><code>/&gt;</code>

<code>&lt;</code><code>div</code> <code>name</code><code>=</code><code>"n2"</code><code>&gt; &lt;</code><code>p</code><code>&gt;heheheheeeeeee&lt;/</code><code>p</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>&lt;</code><code>div</code> <code>name</code><code>=</code><code>"n2"</code><code>&gt; &lt;</code><code>p</code><code>&gt;bbabababbabab&lt;/</code><code>p</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>&lt;!-- 通过标签name获取到标签对象 --&gt;</code>

<code>var name2 = document.getElementsByName('n2');</code>

<code>&lt;!-- 当获取到多个同name标签时,则通过序号来区别,name2[0]表示第一个,name2[1]则表示第二个 --&gt;</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>&lt;!-- 通过标签tag获取到标签对象 --&gt;</code>

<code>var name3 = document.getElementsByTagName('div');</code>

<code>&lt;!-- 对该对象进行循环,逐一取出每个对象进行修改 --&gt;</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>&lt;!-- 创建一个a标签 --&gt;</code>

<code>var tag = document.createElement("a");</code>

<code>&lt;!-- 给创建的标签赋予链接 --&gt;</code>

<code>tag.href = '</code>

<code> </code><code>&lt;!-- 给标签设置文本字符 --&gt;</code>

<code>tag.innerText = '点希望';</code>

<code>var id1 = document.getElementById('n1');</code>

<code>&lt;!-- 给id1对象添加标签 --&gt;</code>

<code>id1.appendChild(tag);</code>

<a href="http://s2.51cto.com/wyfs02/M01/7A/FD/wKiom1bEOjWxVENhAAAC5BDH8aE193.png" target="_blank"></a>

实例演示五、标签替换

<code>&lt;!-- 创建标签对象 --&gt;</code>

<code>var tag = "&lt;</code><code>a</code> <code>href</code><code>=</code><code>'http://www.baidu.com'</code><code>&gt;百度一下&lt;/</code><code>a</code><code>&gt;"</code>

<code>&lt;!-- 替换标签 --&gt;</code>

<code>id1.innerHTML = tag;</code>

页面效果会显示原id="n1"的div标签消失了,替换成了自定义的超链接标签。

实例演示六、修改标签的Class

18

19

20

21

22

23

24

<code>&lt;!DOCTYPE html&gt;</code>

<code>&lt;</code><code>html</code> <code>lang</code><code>=</code><code>"en"</code><code>&gt;</code>

<code>&lt;</code><code>head</code><code>&gt;</code>

<code>    </code><code>&lt;</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>&gt;</code>

<code>    </code><code>&lt;</code><code>title</code><code>&gt;js_st1&lt;/</code><code>title</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>style</code> <code>type</code><code>=</code><code>"text/css"</code><code>&gt;</code>

<code>        </code><code>.hide {display: none;}</code>

<code>        </code><code>.n22 {color:red;}</code>

<code>    </code><code>&lt;/</code><code>style</code><code>&gt;</code>

<code>&lt;/</code><code>head</code><code>&gt;</code>

<code>&lt;</code><code>body</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"n22"</code> <code>name</code><code>=</code><code>"n2"</code><code>&gt; &lt;</code><code>p</code><code>&gt;heheheheeeeeee&lt;/</code><code>p</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>hr</code><code>/&gt;</code>

<code>    </code><code>&lt;</code><code>div</code> <code>name</code><code>=</code><code>"n2"</code><code>&gt; &lt;</code><code>p</code><code>&gt;bbabababbabab&lt;/</code><code>p</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>var id2 = document.getElementsByName('n2');</code>

<code>&lt;!-- 将原样式n22替换为hide样式 --&gt;</code>

<code>id2[0].className = 'hide'</code>

<code>&lt;/</code><code>script</code><code>&gt;      </code>

<code>&lt;/</code><code>body</code><code>&gt;</code>

<code>&lt;/</code><code>html</code><code>&gt;</code>

此时第一个div在页面中将不会显示了

实例演示七、修改标签的name值

<code>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"n3"</code> <code>name</code><code>=</code><code>"dog"</code><code>&gt; &lt;/</code><code>div</code><code>&gt;</code>

<code>&lt;!-- 通过id获取到标签对象 --&gt;</code>

<code>var id3 = document.getElementById('n3');</code>

<code>&lt;!-- 使用log打印原name值 --&gt;</code>

<code>console.log(id3.getAttribute('name'));</code>

<code>&lt;!-- 修改标签的name值为'cow' --&gt;</code>

<code>id3.setAttribute('name','cow');</code>

<a href="http://s4.51cto.com/wyfs02/M01/7A/FD/wKioL1bERcHC_WC5AAAtAWRMTsw355.png" target="_blank"></a>

实例演示八、修改标签样式

<code>&lt;</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>&gt; &lt;/</code><code>div</code><code>&gt;</code>

<code>&lt;!-- 获取该标签的宽度 --&gt;</code>

<code>var w = id3.style.width;</code>

<code>console.log(w);</code>

<code>&lt;!-- 修改样式 --&gt;</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>&lt;</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>&gt;</code>

<code>    </code><code>&lt;!-- 这里的wd是传给后端程序的value --&gt;</code>

<code>    </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>'text'</code> <code>name</code><code>=</code><code>'wd'</code> <code>/&gt;</code>

<code>  </code><code>&lt;!-- 定义点击事件,对应Foo()函数 --&gt;</code>  

<code>    </code><code>&lt;</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>/&gt;</code>

<code>&lt;/</code><code>form</code><code>&gt;</code>

<code>&lt;!-- 定义点击函数内容,提交'F1'对象表单 --&gt;</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>&lt;</code><code>title</code><code>&gt;搜索框实例&lt;/</code><code>title</code><code>&gt;</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>&lt;</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>/&gt;</code>

<code> </code><code>&lt;</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>&gt;</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>&lt;/</code><code>script</code><code>&gt;</code>

跑马灯实例

<code>    </code><code>&lt;</code><code>title</code><code>&gt;跑马灯&amp;nbsp;&amp;nbsp;哈哈和进度条&amp;nbsp;&amp;nbsp;&lt;/</code><code>title</code><code>&gt;</code>

<code>    </code><code>function Go(){</code>

<code>    </code><code>&lt;!-- 获取title文本内容 --&gt;</code>

<code>    </code><code>var content = document.title;</code>

<code>    </code><code>&lt;!-- 获取内容的第一个字符 --&gt;</code>

<code>    </code><code>var firstChar = content.charAt(0)</code>

<code>    </code><code>&lt;!-- 获取title的第二个至最后一个字符 --&gt;</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>&lt;</code><code>div</code> <code>style</code><code>=</code><code>"width:1000px;background-color:gray"</code><code>&gt;</code>

<code>        </code><code>&lt;</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>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>div</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>div</code><code>&gt;</code>

<code>        </code><code>&lt;</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>/&gt;</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 &gt; 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>&lt;!-- 定义停止函数,用于停止进度条 --&gt;</code>

<code>function Stop(){</code>

<code>    </code><code>clearInterval(interval)</code>

本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1742721

继续阅读