当前位置: 首页 > news >正文

JS(DOM)第十五课

Dom的全称是Document Object Model

DOM 定义了访问 HTML 和 XML 文档的标准

Dom的定义

DOM 文档对象模型

DOM是针对XML的基于树的API。描述了处理网页内容的方法和接口,是HTML和XML的API,DOM把整个页面规划成由节点层级构成的文档。
DOM本身是与语言无关的API,
它并不与Java,JavaScript或其他语言绑定。

这张思维导图带你理解HTML和body,head的关系图
本文章的大纲内容

 1 获取Html标记的节点元素

<script>
    // 获取Html标记的节点元素
    var html=document.documentElement
    console.log(html);
    html.style.background = 'pink'
</script>
    
获取Html标记的节点元素中打印出来的结果

2 获取head的节点

 <script>
     var head = document.head
     console.log(head)
 </script>
ody>
获取head的节点

3 获取body的节点

 <script>
     var body = document.body
     console.log(body)
     document.write(body)
     body.style.background='red'
 </script>
ody>
获取body的节点

 4  上面的三个节点综合使用 下面的是 Html的具体结构  节点直接的导航

<div>我是Dom操作的元素信息内容</div><div>我是第二个节点<span></span><span>节点的含义</span><span>节点的含义</span></div><div>我是第三个节点</div>
 <script>
     // 文档声明
     var DOCTYPE = document.doctype
     console.log(DOCTYPE)
     // html
     var html = document.documentElement
     console.log(html);
     html.style.background = 'pink'
     // head
     var head = document.head
     console.log(head)
     head.style.background = "yellow"
我设置的黄色呢
  •  console.log(body.parentNode) //body的父节点 Html
  • console.log(head.parentNode) //head的父节点 Html
  • console.log(body.previousSibling) //前兄弟节点 #text
  • console.log(head.nextSibling) //后兄弟节点  #text
  • console.log(head.childNodes) //head子节点 NodeList(9) [text, meta, text, meta, text, meta, text, title, text]
  • console.log(body.firstChild) //第一个节点 #text
  • console.log(body.lastChild) //最后一个子节点  <script><script>
  • console.log(body.childNodes[0]) //子节点 <div>我是Dom操作的元素信息内容</div>
  • console.log(body.childNodes[1]) //<div>我是第二个节点</div>
  • console.log(body.childNodes[2]) //<div>我是第三个节点</div>

通过对上面的元素基本操作是为了更好的了解节点这个概念

运行结果如图所示

这张思维导图带你理解HTML和body,head的关系图

5 Document元素之间的节点的导航

<div class="box">
    <h1 class="title">我是标题</h1>
    <div class="container">我是div审查元素</div>
    <div class="dest">我是一个段落</div>
</div>
<span>我是span标签元素</span>

 var body = document.body  //获取下面的父节点

  •  console.log("获取body标签的内容")
  •  console.log(body)
  •  console.log("获取下面的父节点")
  •  console.log(body.parentElement)
  •  console.log("//获取前兄弟节点")
  •  console.log(body.previousElementSibling)//获取前兄弟节点
  •  console.log("获取的子节点")
  •  console.log(body.children)//获取的子节点
  •  console.log("获取的子节点1")
  •  console.log(body.children[0])//获取的子节点1
  •  console.log("获取的子节点2")
  •  console.log(body.children[1])//获取的子节点2
  •  console.log("获取第一个子节点的信息")
  •  console.log(body.firstElementChild)
  •  console.log("获取最后一个子节点的信息")
  •  console.log(body.lastElementChild)

上面的文件内容是对元素中的节点导航

Document元素之间的节点的导航

6 表格元素直接的节点导行

   <!-- !表格元素导行 -->
   <table>
       <tr>
           <td class="one">1</td>
           <td>2</td>
           <td>3</td>
           <td>4</td>
           <td>5</td>
       </tr>
       <tr>
           <td>1</td>
           <td class="one">2</td>
           <td>3</td>
           <td>4</td>
           <td>5</td>
       </tr>
       <tr>
           <td>1</td>
           <td>2</td>
           <td class="one">3</td>
           <td>4</td>
           <td>5</td>
       </tr>
       <tr>
           <td>1</td>
           <td>2</td>
           <td>3</td>
           <td class="one">4</td>
           <td>5</td>
       </tr>
       <tr>
           <td>1</td>
           <td>2</td>
           <td>3</td>
           <td>4</td>
           <td class="one">5</td>
       </tr>
       <caption>我是caption的元素内容</caption>
       <thead>我是thead的元素的内容</thead>
       <tbody>123</tbody>
      
   </table>
  •   var body = document.body
  •  
     console.log("/获取了元素的body元素")
      console.log(body)//获取了元素的body元素
      // body.style.background = 'green'
      console.log("获取body的第一个孩子为 style")
      console.log(body.children[0])//获取body的第一个孩子为 style
      console.log("获取body的第二个孩子为 table")
      console.log(body.children[1])//获取body的第二个孩子为 table
      body.children[1].background='yellow'
      console.log("获取body的第三个孩子为 script")
      console.log(body.children[2])//获取body的第三个孩子为 script
      console.log("获取所有的tr")
      console.log(body.children[1].rows) //所有的tr

  •   var table=document.body.children[0]
  •  
    console.log(table)
      console.log(table.rows)
      console.log(table.caption)
      console.log(table.tHead)
      console.log(table.tFoot)
      console.log(table.tBodies)
      console.log(table.rows)

  •   var td=document.body.children[1].rows
  •  
    console.log(td)
      // console.log(table.rows.sectionRowIndex)
      // var table=document.body.childElementCount[1].childNodes
      // console.log(table)

  •   var gettag=document.getElementsByTagName('td')
  •  
     gettag.background='red'
      console.log(gettag)      

  •   var getclass=document.getElementsByClassName('one')
  •  
     console.log(getclass)
      //querySelector() — 精准的获取某个元素 
      var f=document.querySelector(".one")
      //uerySelectorAll()获取符合类名或者标签名等条件的的所有元素

  •   var g=document.querySelectorAll('.one')
  •  
     console.log(f)
      console.log(g)

上面是表格元素直接的节点导行

表格元素直接的节点导行

 7 表单元素直接的节点导行

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <div id="content">
        <h2 class="step">注册步骤;</h2>
        <form action="#" method="post" class="one">
            <h3>你的账号信息;</h3>
            <table class="content">
                <tr>
                    <td class="left">注册方式;</td>
                    <td>
                        <label for="one"><input type="radio" name="emil" id="one" />
                            E-mail注册
                        </label>&nbsp;&nbsp;&nbsp;&nbsp;
                        <label for="two"><input type="radio" name="sex" id="two" />手机号码注册</label>
                    </td>
                </tr>
                <tr>
                    <td class="left" nam="you">注册邮箱;</td>
                    <td><input type="text" class="right" /></td>
                </tr>
                <tr>
                    <td class="left">注册手机;</td>
                    <td><input type="text" class="right" /></td>
                </tr>
                <tr>
                    <td class="left"> 登录密码</td>
                    <td><input type="password " maxlength="8" class="right" /></td>
                </tr>
                <tr>
                    <td class="left">昵称;</td>
                    <td><input type="text" class="right" /></td>
                </tr>
            </table>


            <h3>你的个人信息</h3>
            <table class="content">
                <tr>
                    <td class="lrft">性别; </td>
                    <td>
                        <label for="boy"><input type="radio" name="sex" id="boy" />男
                        </label>&nbsp;&nbsp;&nbsp;&nbsp;
                        <label for="girl"><input type="radio" name="sex" id="girl" />女
                        </label>
                    </td>
                </tr>

                <tr>
                    <td class="left">学历</td>
                    <td>
                        <select>
                            <option> -请选择-</option>
                            <option> 中职/高职</option>
                            <option> 专科/本科</option>
                            <option> 硕士研究生</option>
                            <option> 博士研究生</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td class="left">所在城市</td>
                    <td>
                        <select>
                            <option> -请选择-</option>
                            <option selected="selected"> 北京</option>
                            <option>上海</option>
                            <option>广州</option>
                            <option> 深州</option>
                        </select>
                    </td>
                </tr>

                <tr>
                    <td class="left">兴趣爱好</td>
                    <td>
                        <input type="checkbox" /> 足球&nbsp;&nbsp;&nbsp;&nbsp;
                        <input type="checkbox" /> 篮球&nbsp;&nbsp;&nbsp;&nbsp;
                        <input type="checkbox" /> 游泳 &nbsp;&nbsp;&nbsp;&nbsp;
                        <input type="checkbox" /> 唱歌&nbsp;&nbsp;&nbsp;&nbsp;
                        <input type="checkbox" /> 跑步&nbsp;&nbsp;&nbsp;&nbsp;
                        <input type="checkbox" /> 瑜伽 &nbsp;&nbsp;&nbsp;&nbsp;
                    </td>
                </tr>

                <tr>
                    <td class="left"> 自我介绍</td>
                    <td>
                        <textarea cols="60" rows="8">评论时注意一下语言。</textarea>
                    </td>
                </tr>
                <tr>
                    <!-- <td align="center" colspan="2"><input type="buttom" class="btn" /></td> -->
                </tr>
            </table>
        </form>
    </div>


    <script>
        var from=document.forms[0]
        console.log(from)
        console.log(from.elements);//获取所有元素
        console.log(from.emil)//通过name属性获得焦点


    </script>

</body>

</html>

JS(Dom对象的属性和方法)第十六课_星辰镜的博客-CSDN博客

相关文章:

  • Java多线程(2)
  • 深入浅出Spring注解(22)
  • [C++基础]-初识模板
  • 【黄啊码】MySQL入门—13、悲观锁、乐观锁怎么用?什么是行锁、页锁和表锁?死锁了咋办?
  • 小小博客项目(servlet实战演练)
  • C++学习(6)——模板
  • C++重载运算符
  • 1027推免分享材料 备份
  • JavaScript---常用JS方法(utils.js)额外篇
  • 《CTF特训营》学习笔记——APK逆向基础
  • 一文带你了解怎样快速上手微信小程序开发
  • 基于注意力机制的深度协同推荐模型
  • 【Linux修炼】6.gcc/g++及Makefile【工具篇】
  • 【Linux】基本的指令(三)
  • 算法学习 | 贪心算法~通过局部最优的选择来得到整体最优解
  • .pyc 想到的一些问题
  • css的样式优先级
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • js学习笔记
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Redis学习笔记 - pipline(流水线、管道)
  • Vue全家桶实现一个Web App
  • WebSocket使用
  • 类orAPI - 收藏集 - 掘金
  • 批量截取pdf文件
  • 思维导图—你不知道的JavaScript中卷
  • 我的业余项目总结
  • 源码安装memcached和php memcache扩展
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​人工智能书单(数学基础篇)
  • #define 用法
  • #预处理和函数的对比以及条件编译
  • (03)光刻——半导体电路的绘制
  • (C)一些题4
  • (LeetCode 49)Anagrams
  • (阿里云万网)-域名注册购买实名流程
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)socket Aio demo
  • (转)人的集合论——移山之道
  • (转)用.Net的File控件上传文件的解决方案
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .Net 代码性能 - (1)
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET/C# 使窗口永不获得焦点
  • .net经典笔试题
  • .net与java建立WebService再互相调用
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • [14]内置对象