首页 > 其他分享 >DOM

DOM

时间:2024-03-28 11:34:37浏览次数:17  
标签:结点 cityul DOM 元素 var xmli document

一. DOM

DOM (Document Object Model) 编程就是使用 document 对象的API,完成对网页 HTML 文档进行动态修改,以实现网页数据和样式动态变化效果的编程

  • document 对象代表整个 html 文档,可用来访问页面中的所有元素,是最复杂的一个 dom 对象,可以说是学好 dom 编程的关键所在

  • 根据 HTML 代码结构特点,document 对象本质是一种树形结构的文档对象

   

  • 生成树如下

  • DOM编程其实就是用 window 对象的 document 属性的相关 API 完成对页面元素的控制的编程:

  • dom 树中结点的类型:

    • node 结点,所有结点的父类型:

      • element 元素结点,node的子类型之一,代表一个完整标签

      • attribute 属性性结点,node的子类型之一,代表元素的属性

      • text 文本结点,node的子类型之一,代表双标签中间的文本

二. 获取页面元素的几种方式

  • 在整个文档范围内查找元素结点

  • 在具体元素结点范围内查找子结点

  • 查找指定子元素结点的父结点

  • 查找指定元素结点的兄弟结点

三. 操作元素属性值

  • 属性操作

  • 内部文本操作

四. 增删元素

  • 对页面的元素进行增删操作

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
   <script>
    /* 
   1 获得document dom树
       window.document
   2 从document中获取要操作的元素
       1)直接获取
           var el1 =document.getElementById("username") // 根据元素的id值获取页面上唯一的一个元素
           var els =document.getElementsByTag0ame("input") // 根据元素的标签名获取多个同名元素
           var els =document.getElementsBy0ame("aaa") // 根据元素的name属性值获得多个元素
           var els =document.getElementsByClass0ame("a") // 根据元素的class属性值获得多个元素
       2)间接获取
           var cs=div01.children // 通过父元素获取全部的子元素
           var firstChild =div01.firstElementChild // 通过父元素获取第一个子元素
           var lastChild = div01.lastElementChild   // 通过父元素获取最后一个子元素
           var parent = pinput.parentElement // 通过子元素获取父元素
           var pElement = pinput.previousElementSibling // 获取前面的第一个元素
           var nElement = pinput.nextElementSibling // 获取后面的第一个元素
   3 对元素进行操作
       1)操作元素的属性   元素名.属性名=""
       2)操作元素的样式   元素名.style.样式名="" 样式名"-" 要进行驼峰转换
       3)操作元素的文本   元素名.innerText   只识别文本
                         元素名.innerHTML   同时可以识别html代码
       4)增删元素
           var element =document.createElement("元素名") // 创建元素
           父元素.appendChild(子元素)               // 在父元素中追加子元素
           父元素.insertBefore(新元素,参照元素)     // 在某个元素前增加元素
           父元素.replaceChild(新元素,被替换的元素) // 用新的元素替换某个子子元素
           元素.remove()                           // 删除当前元素
   */
   function addCs(){
        // 创建一个新的元素
        // 创建元素
        var xmli =document.createElement("li") // <li></li>
        // 设置子元素的属性和文本 <li id="xm">厦门</li>
        csli.id="xm"
        csli.innerText="厦门"
        // 将子元素放入父元素中
        var cityul =document.getElementById("city")
        // 在父元素中追加子元素
        cityul.appendChild(csli)
   }
   function addCsBeforeSz(){
        // 创建一个新的元素
        // 创建元素
        var xmli =document.createElement("li") // <li></li>
        // 设置子元素的属性和文本 <li id="xm">厦门</li>
        xmli.id="xm"
        xmli.innerText="厦门"
        // 将子元素放入父元素中
        var cityul =document.getElementById("city")
// 在父元素中追加子元素
        //cityul.insertBefore(新元素,参照元素)
        var szli =document.getElementById("sz")
        cityul.insertBefore(xmli,szli)
   }
   function replaceSz(){
        // 创建一个新的元素
        // 创建元素
        var xmli =document.createElement("li") // <li></li>
        // 设置子元素的属性和文本 <li id="xm">厦门</li>
        xmli.id="xm"
        xmli.innerText="厦门"
        // 将子元素放入父元素中
        var cityul =document.getElementById("city")
        // 在父元素中追加子元素
        //cityul.replaceChild(新元素,被替换的元素)
        var szli =document.getElementById("sz")
        cityul.replaceChild(xmli,szli)
   }
   function removeSz(){
        var szli =document.getElementById("sz")
        // 哪个元素调用了remove该元素就会从dom树中移除
        szli.remove()
   }
   function clearCity(){      
        var cityul =document.getElementById("city")
        /* var fc =cityul.firstChild
       while(fc != null ){
           fc.remove()
           fc =cityul.firstChild
       } */
        cityul.innerHTML=""
        //cityul.remove()
   }   
   </script>
</head>
<body>
    <ul id="city">
        <li id="bL">北京</li>
        <li id="sh">上海</li>
        <li id="sz">深圳</li>
        <li id="gz">广州</li>
    </ul>
    <hr>
    <!-- 目标1 在城市列表的最后添加一个子标签 <li id="xm">厦门</li> -->
    <button onclick="addXm()">增加厦门</button>
    <!-- 目标2 在城市列表的深圳前添加一个子标签 <li id="xm">厦门</li> -->
    <button onclick="addCsBeforeSz()">在深圳前插入厦门</button>
    <!-- 目标3 将城市列表的深圳替换为 <li id="xm">厦门</li> -->
    <button onclick="replaceSz()">替换深圳</button>
    <!-- 目标4 将城市列表删除深圳 -->
    <button onclick="removeSz()">删除深圳</button>
    <!-- 目标5 清空城市列表 -->
    <button onclick="clearCity()">清空</button>
</body>
</html>

标签:结点,cityul,DOM,元素,var,xmli,document
From: https://www.cnblogs.com/pine1203/p/18101059

相关文章

  • JavaScript 基础、内置对象、BOM 和 DOM 常用英文单词总结
    一提到编程、软件、代码。对于英语不是很熟悉的同学望而却步。其实没有想像中的难么难,反复练习加上自己的思考、总结,会形成肌肉记忆。整理一下,初学者每天30遍。1、JavaScript基础语法break:中断循环或switch语句的执行。case:在switch语句中检查的值。catch:在try-c......
  • 13DOM编程API(一)
    1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"content="width=device-width,initial-scale=1.0">6<title>Do......
  • 15DOM编程API(三)
    1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"content="width=device-width,initial-scale=1.0">6<title>Document......
  • 14DOM编程API(二)
    1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"content="width=device-width,initial-scale=1.0">6<title>Document......
  • 论文解读(UDA-GCN)《Unsupervised Domain Adaptive Graph Convolutional Networks》
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:UnsupervisedDomainAdaptiveGraphConvolutionalNetworks论文作者:论文来源:2020aRxiv论文地址:download 论文代码:download视屏讲解:click1-摘要图卷积网络(GCNs)在许多与图相关的分析任务中都取得了令人印......
  • A LARGE LANGUAGE MODEL EVALUATION BENCHMARK AND BASELINE FOR CHINESE PUBLIC SECU
    本文是LLM系列文章,针对《CPSDBENCH:ALARGELANGUAGEMODELEVALUATIONBENCHMARKANDBASELINEFORCHINESEPUBLICSECURITYDOMAIN》的翻译。CPSDBENCH:中国公共安全领域的大型语言模型评估基准和基线摘要1引言2相关工作3方法4结果与分析5结论摘要大......
  • HTML DOM的event事件
    onabort图像的加载被中断 onblur 元素失去焦点onchange域的内容被改变onclick当用户点击某个对象时调用的事件句柄ondblclick 当用户双击某个对象时调用的事件句柄onerror在加载文档或图像时发生错误 onfocus元素获得焦点onkeydown某个键盘按......
  • BOM和DOM
    【一】什么是BOM/DOMBOM,浏览器对象模型,它使得JavaScript有能力与浏览器进行对话DOM,文档对象模型,可以通过它访问HTML文档的所有元素他们是JavaScript与浏览器以及网页内容进行交互的核心【1】BOM概述浏览器对象模型(BOM)则是浏览器提供的API集合,主要用于处理与浏览器环境相......
  • 11DOM编程处理事件
    1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"content="width=device-width,initial-scale=1.0">6<title>Document......
  • Python常用模块(random随机模块&json序列化模块)
    1.random随机模块返回两数之间的随机数,不包括尾数:random.randrange()importrandomprint(random.randrange(1,10))#3返回两数之间的随机数,包括尾数:random.randint()importrandomprint(random.randint(1,10))#返回1-10之间的一个随机数,包括10#7随机选取0到100间......