一、简介


1、什么是DOM

  文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。

2、DOM结构

HTML DOM 将 HTML 文档视作树结构。这种结构被称为节点树:

通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点。

树中所有的框都是节点,文本也是一个节点

包括:<title>DOM 教程</title>,元素节点 <title>,包含值为 "DOM 教程" 的文本节点。这是一个初学者的易错点。

二、查找DOM对象


1、直接查找

getElementById() 返回对拥有指定 id 的第一个对象的引用。
getElementsByName() 返回带有指定名称的对象集合。
getElementsByTagName() 返回带有指定标签名的对象集合。

2、间接查找

  获得节点node,包含所有类型的node节点。

  

  1. parentNode // 父节点
  2. childNodes // 所有子节点
  3. firstChild // 第一个子节点
  4. lastChild // 最后一个子节点
  5. nextSibling // 下一个兄弟节点
  6. previousSibling // 上一个兄弟节点

  

  获得元素element,仅包含element标签元素的节点。

  1. parentElement // 父节点标签元素
  2. children // 所有子标签
  3. firstElementChild // 第一个子标签元素
  4. lastElementChild // 最后一个子标签元素
  5. nextElementtSibling // 下一个兄弟标签元素
  6. previousElementSibling // 上一个兄弟标签元素

  一个例子说明上面两种方法的区别

  1. <div id="t1">
  2. 文本
  3. <p>123</p>
  4. </div>

 

3、操作DOM对象


1、文本操作

innerText      //所有的纯文本内容,包括子标签中的文本
innerHTML     //所有子节点(包括元素、注释和文本节点)
outerHTML     //返回自身节点与所有子节点

value       //表单元素的值

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div>
  9. <div id="d1"><span>文本操作</span></div>
  10. </div>
  11. <input id ="d2" type="text" value="123">
  12.  
  13. <script>
  14. var e = document.getElementById("d1");
  15. var i = document.getElementById("d2")
  16. console.log(e.innerHTML)
  17. console.log(e.outerHTML)
  18. console.log(e.innerText)
  19. console.log(i.value)
  20.  
  21. </script>
  22. </body>
  23. </html>

例子

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>DOM元素取值操作</title>
  6.  
  7. <!--表单类标签取值使用value-->
  8. </head>
  9. <body>
  10. <p id="pp">正常标签<span>span</span></p>
  11. <!-- ------------------------------------------------------>
  12. <fieldset>
  13. <legend>文本输入样例组</legend>
  14. <label>文本输入框:</label><input id='i1' type="text" value="原始字符" />
  15. <label>密码框:</label><input id='i2' type="password" value="123" />
  16. <label>多行文本输入:</label><textarea id="i3">value </textarea>
  17. </fieldset>
  18. <!-----------------------chexkbox----------------------------->
  19. <fieldset>
  20. <legend>选择样例组</legend>
  21. <ul id="check-box">
  22. <li><input type="checkbox" value="1" checked="checked"/>篮球</li>
  23. <li><input type="checkbox" value="2"/>足球</li>
  24. <li><input type="checkbox" value="3"/>排球</li>
  25. </ul>
  26. <ul id="radio-test">
  27. <!--name一样才能同组互斥-->
  28. <li><input type="radio" value='11' name="text" checked="checked"/></li>
  29. <li><input type="radio" value='22' name="text"/></li>
  30. <li><input type="radio" value='33' name="text"/>人妖</li>
  31. </ul>
  32. <select id="select-test">
  33. <option value="11">北京</option>
  34. <option value="22" selected="selected">上海</option>
  35. <option value="33">广州</option>
  36. <option value="44">深证</option>
  37. </select>
  38. </fieldset>
  39.  
  40. <!---------------------radios------------------->
  41. <script>
  42. pp_text_value = document.getElementById('pp').innerText //"正常标签span"
  43. pp_html_value = document.getElementById('pp').innerHTML//"正常标签<span>span</span>"
  44. // ----------------------------------------------------------------------------------------
  45. // text password textarea
  46. i1=document.getElementById('i1').value//要设置值直接用i1=xxx
  47. i2=document.getElementById('i2').value
  48. i3=document.getElementById('i3').value
  49. // -------------------------------------------------------------------------------
  50. // checkbox
  51. ul_box=document.getElementById('check-box')
  52. var inputs = ul_box.getElementsByTagName('input')
  53. // for(var item in inputs){
  54. // console.log(inputs[item].value)
  55. // }这种方法有多余的数据出现
  56. for(var index=0; index<inputs.length;index++ ){
  57. console.log(inputs[index].value) //获取值,1 2 3
  58. console.log(inputs[index].checked) //获取选中状态, true , false ,false
  59. }
  60.  
  61. // ------------------radio--------------------------------------
  62. var radio_test=document.getElementById('radio-test')
  63. var radios = radio_test.getElementsByTagName('input')
  64. for(var index=0;index<radios.length;index++){
  65. console.log(radios[index].value) //获取值,11 22 33
  66. console.log(radios[index].checked) //获取选中状态, true , false ,false
  67. }
  68. //-----------------------select-------------------------------
  69. var sel_ele=document.getElementById('select-test')
  70. var sel_value=sel_ele.value //获取当前元素值
  71. var sel_selindex=sel_ele.selectedIndex //获取当前选中项索引
  72.  
  73. </script>
  74.  
  75. </body>
  76. </html>

表单类的value和checked操作

运行结果

 

2、attrbute属性操作

  1. attributes // 获取所有标签属性
  2. setAttribute(key,value) // 设置标签属性
  3. getAttribute(key) // 获取指定标签属性
  4.  
  5. /*
  6. var atr = document.createAttribute("class");
  7. atr.nodeValue="democlass";
  8. document.getElementById('n1').setAttributeNode(atr);
  9. */

  

3、class类操作

  1. className // 获取所有类名
    classList         //获取所有类的列表
  2. classList.remove(cls) // 删除指定类
  3. classList.add(cls) // 添加类
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .bg-color{background-color: red}
  8. .w{width: 100px}
  9. .col{color:green}
  10.  
  11. </style>
  12. </head>
  13.  
  14. <body>
  15. <div id="d1" class="bg-color w col">cangsong</div>
  16.  
  17. <script>
  18. var d=document.getElementById("d1")
  19. console.log(d.className) //bg-color w col
  20. console.log(d.classList) //["bg-color", "w", "col", value: "bg-color w col"]
  21. d.classList.remove("col")
  22. console.log(d.className) //bg-color w
  23. d.classList.add("col")
  24. console.log(d.className) //bg-color w col
  25.  
  26. </script>
  27. </body>
  28. </html>

class类操作

4、标签操作

  a.创建标签

  1. // 方式一
  2. var tag = document.createElement('a')
  3. tag.innerText = "wupeiqi"
  4. tag.className = "c1"
  5. tag.href = "http://www.cnblogs.com/wupeiqi"
  6.  
  7. // 方式二
  8. var tag = "<a class='c1' href='http://www.cnblogs.com/wupeiqi'>wupeiqi</a>"

  b、操作标签

  1. // 方式一
  2. var obj = "<input type='text' />";
  3. xxx.insertAdjacentHTML("beforeEnd",obj);
  4. xxx.insertAdjacentElement('afterBegin',document.createElement('p'))
  5.  
  6. //注意:第一个参数只能是'beforeBegin'、 'afterBegin'、 'beforeEnd'、 'afterEnd'
  7.  
  8. // 方式二
  9. var tag = document.createElement('a')
  10. xxx.appendChild(tag)
  11. xxx.insertBefore(tag,xxx[1])

  

5、style样式操作

  1. style.cssText //可对style中的代码进行读写
  2. style.item() //返回给定位置的CSS属性的名称
  3. style.length //style代码块中参数个数
  4. style.getPropertyValue() //返回给定属性的字符串值
  5. style.getPropertyPriority() //检测给定属性是否设置了!important,设置了返回"important";否则返回空字符串
  6. style.removeProperty() //删除指定属性
  7. style.setProperty() //设置属性,可三个参数:设置属性名,设置属性值,是否设置为"important"
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div id="d1" style="background-color: yellow; width: 100px; height: 100px">style test</div>
  9.  
  10. <script>
  11. var d1 = document.getElementById("d1");
  12. console.log(d1.style.cssText); //width: 100px; height: 100px; background-color: yellow;
  13. d1.style.cssText = "background-color: yellow; width: 200px; height: 200px"; //修改属性
  14. console.log(d1.style.cssText); //width: 200px; height: 200px; background-color: yellow;
  15. console.log(d1.style.item("0")); //background-color
  16. console.log(d1.style.length); //3
  17. console.log(d1.style.getPropertyValue("background-color")); //yed1llow
  18. console.log(d1.style.getPropertyPriority("background-color")); //空字符串
  19. console.log(d1.style.removeProperty("width")); //200px
  20. d1.style.setProperty("width","200px",""); //设置属性,第三个值为important优先值,可不写
  21.  
  22. </script>
  23. </body>
  24. </html>

6、提交表单

  1. document.geElementById('form').submit()

 7、位置相关

  1. document.documentElement.offsetHeight   //全文文档总高度
  2. document.documentElement.clientHeight   //浏览器可视区域高度。(随着窗口大小变化)
  3. tag.offsetHeight //tag自身高度(height + padding + border)
  4. tag.offsetTop //距离上级标签定位高度
  5. tag.clientHeight //tag可视区域:height + padding
  6. tag.clientTop //tag的border高度
  7. tag.scrollHeight //tag全文文档高度(height + padding)
  8. tag.scrollTop //tag已滚动高度(随滚动变化)
  9. tag.offsetParent                 //tag相对偏移的父级标签元素
  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title></title>
  6. </head>
  7. <body style="margin: 0;">
  8. <div style="height: 900px;">
  9.  
  10. </div>
  11. <div style="padding: 10px;">
  12. <div id="i1" style="height:190px;padding: 2px;border: 1px solid red;margin: 8px;overflow: scroll">
  13. <p>asdf</p>
  14. <p>asdf</p>
  15. <p>asdf</p>
  16. <p>asdf</p>
  17. <p>asdf</p>
  18. <p>asdf</p>
  19. <p>asdf</p>
  20. <p>asdf</p>
  21. </div>
  22. </div>
  23.  
  24. <script>
  25. var i1 = document.getElementById('i1');
  26. console.log(document.documentElement.clientHeight) //窗口可视区域高度
  27. console.log(document.documentElement.offsetHeight) //全文文档总高度
  28. console.log('=====');
  29. console.log(i1.clientHeight); // 可见区域:height + padding
  30. console.log(i1.clientTop); // border高度
  31. console.log('=====');
  32. console.log(i1.offsetHeight); // 可见区域:height + padding + border
  33. console.log(i1.offsetTop); // 上级定位标签的高度
  34. console.log('=====');
  35. console.log(i1.scrollHeight); //全文高:height + padding
  36. console.log(i1.scrollTop); // 已滚动高度
  37.  
  38. </script>
  39. </body>
  40. </html>
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <style type="text/css">
  6. .container{
  7. height:2000px;
  8. width:100%;
  9. }
  10. #top{
  11. background-color: aqua;
  12. height: 50px;
  13. width:50px;
  14. padding:10px;
  15. position: fixed;
  16. bottom:30px;
  17. right: 30px;
  18. }
  19. .hide{
  20. display: none;
  21. }
  22. </style>
  23. <title>返回顶部</title>
  24. </head>
  25. <body onscroll="scroll()">
  26. <div class="container">
  27. <div id="top" class="hide" onclick="gotop()">
  28. <a href="javascript:void(0)" >返回顶部</a>
  29. </div>
  30. <div class="content">
  31. <h1>本实例知识点:</h1>
  32. <p>1、 onscroll="gotop()"要要用在监听的元素上。本例为body边标签。</p>
  33. <p>2、document.body.scrollTop监听离元素滚轮顶部的距离。</p>
  34. <p>3、 a href="javascript:void(0)",使得点击a标签不刷新页面。</p>
  35. <p>4、返回顶部设置document.body.scrollTop=0</p>
  36.  
  37. </div>
  38. </div>
  39. <script>
  40. function scroll() {
  41. var scrolltop=document.body.scrollTop
  42. if (scrolltop>100){
  43. document.getElementById("top").classList.remove("hide")
  44. }else {
  45. document.getElementById("top").classList.add("hide")
  46. }
  47. }
  48. function gotop() {
  49. document.body.scrollTop=0
  50.  
  51. }
  52. </script>
  53. </body>
  54. </html>

返回顶部样例

  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. .clearfix:after{
  8. content: 'clearfix';
  9. display: block;
  10. height: 0;
  11. visibility: hidden;
  12. clear: both;
  13. }
  14.  
  15. .header{
  16. height:50px;
  17. background-color: black;
  18. }
  19. .container{
  20. width: 1100px;
  21. margin: 0 auto;
  22. }
  23. .menu{
  24. width: 200px;
  25. float: left;
  26. background-color: coral;
  27. }
  28. .content{
  29. width: 870px;
  30. background-color: blanchedalmond;
  31. margin-left: 20px;
  32. float: right;
  33. }
  34. .fixed{
  35. position: fixed;
  36. top:10px;
  37. }
  38. .section{
  39. border: 1px solid red;
  40. height: 300px;
  41. width: 865px;
  42. }
  43. </style>
  44. </head>
  45. <body onscroll="scrollEvent()">
  46. <div class="header"></div>
  47. <div class="container clearfix">
  48. <div id="menu" class="menu">
  49. <ul>
  50. <li>第一章</li>
  51. <li>第二章</li>
  52. <li>第三章</li>
  53. </ul>
  54. </div>
  55. <div class="content">
  56. <div class="section">第一章内容</div>
  57. <div class="section">第二章内容</div>
  58. <div class="section">第三章内容</div>
  59. </div>
  60. </div>
  61.  
  62. <script>
  63. function scrollEvent() {
  64. var sh= document.body.scrollTop // 滚轮已滚高度
  65. var menu=document.getElementById("menu")
  66. if (sh>50){
  67.  
  68. menu.classList.add("fixed")
  69. }else {
  70. menu.classList.remove("fixed")
  71. }
  72. }
  73.  
  74. </script>
  75. </body>
  76. </html>

固定左侧菜单栏

(接固定菜单往下做)

  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. .clearfix:after{
  8. content: 'clearfix';
  9. display: block;
  10. height: 0;
  11. visibility: hidden;
  12. clear: both;
  13. }
  14.  
  15. .header{
  16. height:50px;
  17. background-color: black;
  18. }
  19. .container{
  20. width: 1100px;
  21. margin: 0 auto;
  22. }
  23. .menu{
  24. width: 200px;
  25. float: left;
  26. background-color: coral;
  27. }
  28. .content{
  29. width: 870px;
  30. background-color: blanchedalmond;
  31. margin-left: 20px;
  32. float: right;
  33. }
  34. .fixed{
  35. position: fixed;
  36. top:10px;
  37. }
  38. .section{
  39. border: 1px solid red;
  40. height: 300px;
  41. width: 865px;
  42. }
  43. .active{
  44. background-color: blue;
  45. }
  46. </style>
  47. </head>
  48. <body onscroll="scrollEvent()">
  49. <div class="header"></div>
  50. <div class="container clearfix">
  51. <div id="menu" class="menu">
  52. <ul>
  53. <li>第一章</li>
  54. <li>第二章</li>
  55. <li>第三章</li>
  56. </ul>
  57. </div>
  58. <div class="content">
  59. <div class="section">第一章内容</div>
  60. <div class="section">第二章内容</div>
  61. <div class="section">第三章内容</div>
  62. </div>
  63. </div>
  64.  
  65. <script>
  66. function scrollEvent() {
  67. var sh= document.body.scrollTop // 滚轮已滚高度
  68. var menu=document.getElementById("menu")
  69. if (sh>50){
  70.  
  71. menu.classList.add("fixed")
  72. }else {
  73. menu.classList.remove("fixed")
  74. }//实现菜单固定显示
  75.  
  76. var sections = document.getElementsByClassName("section")
  77. var menu_section=document.getElementsByTagName("li")
  78. for (i=0;i<sections.length;i++){
  79.  
  80. var secParent=sections[i].offsetParent // 章节相对偏移的父元素。content
  81. //sections[i].offsetTop章节元素偏移高度+父元素偏移高度secParent.offsetTop-滑动的高度=章节元素相对于视口顶部的高度。
  82. //小于0,说明章节元素顶部即将超出视口,可以激活。
  83. var secOffect= sections[i].offsetTop+secParent.offsetTop-sh
  84. var secHeight=sections[i].offsetHeight //章节元素自身高度
  85. var secBottomOffect=secOffect+secHeight //章节元素底部距离浏览器视口高度。
  86.  
  87. //元素顶部偏移超出视口,底部偏移还未超出是,机会该章节。一旦有章节匹配不再往下判断,break
  88. if(secOffect<0 && secBottomOffect>0){
  89. curr_menu_section= menu_section[i]
  90. curr_menu_section.classList.add("active");
  91. //清除其他章节的active
  92. for(j=0;j<menu_section.length;j++){
  93. if(curr_menu_section!=menu_section[j]){
  94. menu_section[j].classList.remove("active");
  95. }else {}
  96. }
  97.  
  98. break;
  99. }
  100. }
  101.  
  102. }
  103.  
  104. </script>
  105. </body>
  106. </html>

固定菜单的同时,随内容滚动目录

8、定时器

  1. setInterval //多次定时器(毫秒计时),第一次不立即执行
  2. clearInterval   //清除多次定时器
  3. setTimeout  //单次定时器
  4. clearTimeout   //清除单次定时器
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <input type="button" value="Interval" onclick="Interval();" />
  9. <input type="button" value="StopInterval" onclick="StopInterval();" />
  10. <script>
  11. function Interval() {
  12. s1 = setInterval(function () {
  13. console.log(123);
  14. }, 1000);
  15. s2 = setInterval(function () {
  16. console.log(456);
  17. }, 2000);
  18. console.log(1);
  19. }
  20. function StopInterval() {
  21. clearInterval(s1);
  22. clearInterval(s2);
  23. }
  24. </script>
  25. </body>
  26. </html>

定时器样例

9、弹出框

  1. console.log   //输出框
  2. alert //弹出框
  3. confirm //确认框
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <input type="button" value="consolelog" onclick="console_log();" />
  9. <input type="button" value="alert" onclick="test_alert();" />
  10. <input type="button" value="confirm" onclick="test_confirm();" />
  11. <script>
  12. function console_log() {
  13. console.log("后台输出数据")//要在后台调试界面console界面看到
  14. }
  15. function test_alert() {
  16. alert("测试alert")
  17. }
  18. function test_confirm() {
  19. confirm("测试confirm")
  20. }
  21.  
  22. </script>
  23. </body>
  24. </html>

弹出框测试样例

 
10.localtion
  1. location.href = "url" 获取URL重定向
  2. location.assign("http://www.cnblogs.com/suoning") 重定向到URL
  3. location.search = "wd=suoning" 修改查询字符串(百度搜索)
  4. location.hostname 服务主机名,例:www.cnblogs.com
  5. location.pathname 路径,例:suoning
  6. location.port 端口号
  7. location.reload() 重新加载

11、其他BOM相关

  1. navigator 包含有关浏览器的信息
  2. screen 包含有关客户端显示屏幕的信息
  3. history 包含用户(在浏览器窗口中)访问过的 URL
  4. window.print(); 显示打印对话框
  1. //后退一页
  2. history.go(-1)
  3. //前进一页
  4. history.go(1);
  5. //前进两页
  6. history.go(2);
  7. //无参数时,刷新当前页面
  8. history.go()
  9.  
  10. //后退一页
  11. history.back()
  12. //前进一页
  13. history.forward()

history相关方法

  

4、DOM事件


 

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

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

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

实例:

  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. .black{
  12. color:black;
  13. }
  14. </style>
  15. <script type="text/javascript">
  16. function Enter(){
  17. var id= document.getElementById("tip")
  18. id.className = 'black';
  19. if(id.value=='请输入关键字'||id.value.trim()==''){
  20. id.value = ''
  21. }
  22. }
  23. function Leave(){
  24. var id= document.getElementById("tip")
  25. var val = id.value;
  26. if(val.length==0||id.value.trim()==''){
  27. id.value = '请输入关键字'
  28. id.className = 'gray';
  29. }else{
  30. id.className = 'black';
  31. }
  32. }
  33. </script>
  34. </head>
  35. <body>
  36. <input type='text' class='gray' id='tip' value='请输入关键字' onfocus='Enter();' onblur='Leave();'/>
  37. </body>
  38. </html>

搜索框

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <style type="text/css">
  6. ul {
  7. margin:0;
  8. padding:0;
  9.  
  10. }
  11. ul li{
  12. line-height: 44px;
  13. text-align: center;
  14. list-style: none;
  15. float: left;
  16. margin:0;
  17. padding-left: 10px;
  18. padding-right: 10px;
  19. }
  20. .clearfix:after{
  21. display: block;
  22. content:'.';
  23. height:0;
  24. visibility: hidden;
  25. clear: both;
  26. }
  27. .hide{
  28. display:none;
  29. }
  30. .active{
  31. background-color: white;
  32. border-bottom: none;
  33. }
  34. .container{
  35. width: 100%;
  36. }
  37. .title{
  38. height:44px;
  39. background-color: bisque;
  40. border:1px solid black;
  41. border-bottom: none;
  42. margin: auto 10% ;
  43. }
  44. #content{
  45. margin: auto 10%;
  46. background-color: white;
  47. border: 1px solid black;
  48. border-top: none;
  49. max-height:500px;
  50. min-height:100px;
  51. overflow: scroll;
  52. }
  53. </style>
  54. <title>Tab菜单实例</title>
  55. </head>
  56. <body>
  57. <div class="container">
  58. <div class="title" class="clearfix">
  59. <ul id="i1">
  60. <!--this表示元素本身-->
  61. <li title="1" onclick="show(this)" class="active">title1</li>
  62. <li title="2" onclick="show(this)">title2</li>
  63. <li title="3" onclick="show(this)">title3</li>
  64. </ul>
  65. </div>
  66. <div id="content">
  67. <div content="1" >
  68. <h1>本例知识点:</h1>
  69. <p>1/onclick="show(this)" this特质本元素。</p>
  70. <p>2、classList.remove('active') 移除class中的active,用于class操作</p>
  71. <p>3、ths.className获取class名,设置值直接ths.className="active"</p>
  72. <p>3、tag.getAttribute("content")获取tag标签中:“content"属性的值。标题和内容关联用标签值来关联。</p>
  73. <h1>4、max-height:500px;最大高度min-height:100px;最小高度</h1>
  74. <h1>content1</h1>
  75. <h1>content1</h1>
  76. <h1>content1</h1>
  77. <h1>content1</h1>
  78. <h1>content1</h1>
  79.  
  80. </div>
  81. <div content="2" class="hide">content2</div>
  82. <div content="3" class="hide">content3</div>
  83. </div>
  84. </div>
  85. <script>
  86. function show(ths) {
  87. // ths表示元素自身,本函数点击自身添加active样式,兄弟节点移除active样式、
  88. ths.className="active"
  89. var brothers = ths.parentElement.children
  90. for(var i=0;i<brothers.length;i++){
  91. if (ths==brothers[i]){
  92. continue
  93. }else {
  94. brothers[i].classList.remove('active')
  95. }
  96. }
  97. var title_tab=ths.getAttribute("title")
  98. var father =document.getElementById("content")
  99. var contents = father.children
  100. // console.log(contents)
  101. for(var i=0;i<contents.length;i++){
  102. if(contents[i].getAttribute("content")==title_tab){
  103. contents[i].classList.remove("hide")
  104. }else {
  105. contents[i].classList.add("hide")
  106. }
  107. }
  108. }
  109.  
  110. </script>
  111. </body>
  112. </html>

TAB标签页

 
 
 
详细参考手册:
  http://www.w3school.com.cn/jsref/index.asp
参考文章:
  http://www.cnblogs.com/wupeiqi/articles/5643298.html
  http://www.cnblogs.com/suoning/p/5656922.html

DOM基础总结的更多相关文章

  1. HTML DOM基础知识

    HTML DOM基础知识 一.什么是DOM? 1.HTML DOM 定义了访问和操作HTML文档的标准方法. 2.HTML DOM 把 HTML 文档呈现为带有元素.属性和文本的树结构(节点树). 3 ...

  2. Javascript DOM基础(一)概念

    Dom基础概念: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" ...

  3. jQuery DOM基础

    jQuery DOM基础 1.对元素内容的获取和修改: 表单用value(),普通元素用html()和text(). html()  html(value)设置和获取html内容,有html标签会自动 ...

  4. js入门——Dom基础

    DOM=DocumentObject Model,文档对象模型. Dom有三个不同的部分. 1.核心DOM 也是最基础的文档结构的标准模型 2.XMLDOM 针对XML文档的标准模型 3.HTML D ...

  5. 第一百一十三节,JavaScript文档对象,DOM基础

    JavaScript文档对象,DOM基础 学习要点: 1.DOM介绍 2.查找元素 3.DOM节点 4.节点操作 DOM(Document Object Model)即文档对象模型,针对HTML和XM ...

  6. DOM基础(四)

    每次写DOM的时候,就觉得好像没什么好写,因为涉及到知识点的方面的确不多,对于DOM来说,更多的还是练习为主.在练习的时候,最好能结合着js基础语法的知识点来学习.这样,在学习DOM的时候就不会那么枯 ...

  7. DOM基础(二)

    在我之前写的DOM基础(一)的文章中提到过兼容性的问题,也就是在获取标签间文本信息的时候,早期的火狐版本是不支持innerText的,只支持textContent ,现在的火狐浏览器两者都支持.而IE ...

  8. BOM基础 计时器 定时器 DOM 基础

    -------------------------------------------滴水穿石,我心永恒. day48 CSSJS 1 ECMA script 2 BOM browser object ...

  9. 第五讲 DOM基础

    DOM基础: 什么是DOM:其实就是dovument,div获取.修改样式等等,但是不只是js的组成部分,而且还是一套规范,规定了这些浏览器怎么处理这些操作: 浏览器支持情况:IE(IE7-8,10% ...

  10. JavaScript Dom基础-9-Dom查找方法; 设置DOM元素的样式; innerHTML属性的应用; className属性的应用; DOM元素上添加删除获取属性;

    JavaScript Dom基础 学习目标 1.掌握基本的Dom查找方法 domcument.getElementById() Domcument.getElementBy TagName() 2.掌 ...

随机推荐

  1. HBase-再看HBase

    为什么HBase主要应用于在线应用系统?(还没搞懂) www.github.com/HBaseinaction google 三大论文  Google File System MapReduce Bi ...

  2. G - Just a Hook

    Description In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of t ...

  3. Android进阶笔记06:Android 实现扫描二维码实现网页登录

    一. 扫描二维码登录的实现机制: 详细流程图: (1)PC端打开网页(显示出二维码),这时候会保存对应的randnumber(比如:12345678). (2)Android客户端扫码登录,Andro ...

  4. 在vs中跑动ransac

    期间遇到很多问题. 记一个最主要的是: LINK2019 无法识别的外部符号,然后某一个函数的函数名 然后是 @@函数名 (@) 大概长成这样.或者还就根本就是 无法识别的外部符号. 解决方案: 我这 ...

  5. MSP430常见问题之AD转换类

    Q1:MSP430F149 AD 的输入阻抗有多大?A1:RC<2000欧*30PF Q2:MSP430 ADC12 模块的速度?A2: ADC12 的转换速率是转换所需的ADC12CLK 以及 ...

  6. 关于css制作圆角

    三个阶段: 1.背景图片: 2.css2.0+标签模拟圆角: 3.css3.0圆角属性(border-radius). 1.1.背景图片--宽度固定,高度自适应圆角 为容器设置宽度 在主体的上方加一个 ...

  7. Android实现双进程守护 (转)

    做过android开发的人应该都知道应用会在系统资源匮乏的情况下被系统杀死!当后台的应用被系统回收之后,如何重新恢复它呢?网上对此问题有很多的讨论.这里先总结一下网上流传的各种解决方案,看看这些办法是 ...

  8. U大师装系统

    主要步骤 1. 若是ghost版本,直接使用智能快速装机版即可安装. 2.安装64位操作系统(iso文件) 1)下载系统地址 http://msdn.itellyou.cn/ . 2)制作好U盘启动, ...

  9. C# WCF学习笔记(二)终结点地址与WCF寻址(Endpoint Address and WCF Addressing) WCF中的传输协议

    URI的全称是 Uniform Rosource Identifire(统一资源标识),它唯一标识一个确定的网绐资源,同时也表示资源所处的位置及访问的方式(资源访问所用的网络协议). 对于Endpoi ...

  10. android64位机子兼容32位.so库文件

    http://blog.csdn.net/vhawk/article/details/49964475 猴子在调用高德地图的时候,遇到一个操作系统兼容问题,异常堆栈说是找不到so库文件,猴子就不懂了, ...