JS(DOM)第十五课

news2024/11/17 9:47:01

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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于simulink的超级电容,电池及DC motor充放电系统仿真

目录 一、理论基础 二、核心程序 三、测试结果 作者ID &#xff1a;fpga和matlab CSDN主页&#xff1a;https://blog.csdn.net/ccsss22?typeblog 擅长技术&#xff1a; 1.无线基带,无线图传,编解码 2.机器视觉,图像处理,三维重建 3.人工智能,深度学习 4.智能控制,智能优…

【C ++基础】迭代器(iterator)在string里面的简单使用

【C 基础】迭代器(iterator)在string里面的简单使用 前言 本文是为了扫清后面学习的难点&#xff0c;而特意写的文章&#xff0c;只是介绍迭代器如何在string中使用。 迭代器的详细解释请看这里&#xff1a; [点击跳转&#xff08;这里还没有写哦&#xff09;] C专栏主页&am…

【Node.JS】事件的绑定与触发

往期文章 【Node.JS】写入文件内容 【Node.JS】读取文件内容 目录 简介 绑定事件 on&#xff08;&#xff09; addListener&#xff08;&#xff09; once&#xff08;&#xff09; 监听事件emit&#xff08;&#xff09; 传参 删除事件 removeListener&#xff08;&am…

【无人机】基于蚁群算法的无人机航路规划研究附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

【笔试题】【day14】

目录 第一题&#xff08;哪些成员变量需要在初始化列表初始化&#xff09; 第二题&#xff08;多态的条件&#xff09; 第三题&#xff08;多态的条件&#xff08;通过父类对象调用的全部都是父类的方法&#xff09;&#xff09; 第四题&#xff08;菱形继承&#xff0c;虚…

猴子也能学会的jQuery第一期——什么是jQuery

#1024程序员节&#xff5c;用代码&#xff0c;改变世界 &#x1f4da;系列文章—目录&#x1f525; 猴子也能学会的jQuery第一期——什么是jQuery 猴子也能学会的jQuery第二期——引入jQuery 未完待续 目录 &#x1f4da;系列文章—目录&#x1f525; &#x1f4c4;需要具备的…

【最佳实践】瀚高数据库 Windows企业版v6.0.4 的安装

Windows7、Windows10 一、安装 解压缩文件“hgdb6.0.4-enterprise-windows10-x86-64-20220127.zip”&#xff0c;以【管理员】身份运行 setup.exe。 安装过程基本上是下一步下一步即可&#xff0c;注意步骤如下。 1.1 安装主目录 注意安装路径&#xff0c;不要包含中文&am…

【创作中心】自定义模板的使用

个人主页&#xff1a;天寒雨落的博客_CSDN博客-初学者入门C语言,数据库,python领域博主 &#x1f4ac; 刷题网站&#xff1a;一款立志于C语言的题库网站蓝桥杯ACM训练系统 - C语言网 (dotcpp.com) 特别标注&#xff1a;该博主将长期更新c语言内容&#xff0c;初学c语言的友友们…

2022年12月1日起,OCS将停止接受GOTS的原料投入

【2022年12月1日起&#xff0c;OCS将停止接受GOTS的原料投入】 GOTS介绍&#xff1b; 全球有机纺织品标准&#xff0c;Global Organic Textile Standard, 简称GOTS。该标准由国际天然纺织品协会&#xff08;IVN&#xff09;、日本有机棉协会&#xff08;JOCA&#xff09;&#…

数字化智慧梁场管理系统解决方案

系统介绍 数字化智慧梁场管理系统实现对预制构件生产的全周期智慧化管理。系统以BIM为基础&#xff0c;搭建完整数字孪生模型&#xff0c;依据生产工序智能排程&#xff1b;围绕生产工序&#xff0c;生产任务智能传递&#xff0c;协同工作&#xff1b;依据生产工序&#xff0c;…

Python实战:获取bing必应壁纸首页的每日一图(仅做学习用)

目录需求网站分析代码实现进一步接口获取其他资源需求 老板&#xff1a;微软必应https://cn.bing.com/ 首页的每日一图看着不错&#xff0c;能不能自动获取 我&#xff1a;我试试 网站分析 我们查看网页元素&#xff0c;不难发现背景图就在类名为.img_cont 的标签下 可是搜…

Vitepress搭建组件库文档(下)—— 组件 Demo

上文 《Vitepress搭建组件库文档&#xff08;上&#xff09;—— 基本配置》已经讨论了 vitepress 搭建组件库文档的基本配置&#xff0c;包括站点 Logo、名称、首页 home 布局、顶部导航、左侧导航等。本文进入最重要的部分 —— 如何像 Element Plus 那样一遍代码就可以展示组…

面试查漏补缺--java基础-容器源码解读

前言&#xff1a; 本文主要是通过源码来解读一些自己还不懂的地方&#xff0c;一些数据结构上的东西&#xff0c;不做过多的解读。 文章目录一、容器体系二、List容器2.1 ArrayList源码2.2 Vector 源码2.3 LinkedList三、Set容器3.1 HashSet一、容器体系 容器总的来说分为两大…

小小博客项目(servlet实战演练)

目录 MVC模式简介 项目概述 &#x1f351;Model&#xff08;模型层&#xff09; &#x1f351;View&#xff08;视图层&#xff09; &#x1f351;Controller&#xff08;控制器层) 项目实战 上面pom.xml代码参考 一、模型层 &#x1f330;User代码&#xff1a;对应数据…

什么是NFS?NFS挂载

文章目录1、NFS服务2、RPC服务与NFS3、NFS的优缺点4、NFS服务端的搭建与配置5、小结1、NFS服务 NFS&#xff0c;全称Network File System&#xff0c;即网络文件系统。最大的功能是通过网络&#xff0c;让不同的机器、不同的操作系统可以共享彼此的文件。 &#x1f609; 更直白…

Go语言开发k8s-05-ConfigMap操作

文章目录1. 结构体1.1 ConfigMapList1.2 ConfigMap1.3 TypeMeta1.4 ObjectMeta1.7 对照yml文件示例1.5 Immutable1.6 Data1.7 BinaryData2. Create configMap语法完整示例3. Get ConfigMapList语法完整示例4. Get ConfigMap语法完整示例5. Update ConfigMap语法完整示例6. Dele…

【网络篇】第二篇——IP协议与MAC地址详解

IP协议 理解源IP地址和目的IP地址 网段划分 IP地址的数量限制 私有IP地址和公网IP地址 路由 NAT(网络地址转换) ​编辑NAT IP转换过程 NAPT MAC地址 理解源MAC地址和目的MAC地址 对比理解MAC地址和IP地址 只有一个MAC地址&#xff0c;可以传输数据嘛? 为什么有了…

网络原理——网络层与数据链路层

JavaEE传送门JavaEE 网络原理——No.3 传输层_TCP的滑动窗口, 流量控制与拥塞控制 网络原理——No.4 传输层_TCP协议中的延迟应答, 捎带应答, 面向字节流与TCP的异常处理 目录网络层IP 协议IP 地址路由选择数据链路层以太网网络层 网络层做的工作, 就是两点之间, 规划出一个合…

python基于PHP+MySQL的健身房管理系统

随着时代的发展人们人们对身体不健康越来越重视。身体是革命的本钱,所以只有有一个好的身体才能够积极地参加到工作和学习中去。当前社会生活节奏较快人们往往没有时间进行锻炼于是造成了很多富贵病以及办公室职业病的发生。这是一种极其不健康的生活方式,我为了能够让这些亚健…

坚持记账的5大好处,你知道吗?

记账可以理清生活开支&#xff0c;有效节流通过记账&#xff0c;每时每刻都能知道自己的财务状况&#xff0c;花钱的时候会更有目的与计划&#xff0c;不像以前手忙脚乱一团糟&#xff0c;也不再寅吃卯粮&#xff0c;随意透支。对于很多不知道钱花到哪里去的人来说&#xff0c;…