JavaScript---DOM对象

2023-11-04

JavaScript—DOM对象

一、操作DOM对象

1.1、DOM对象的核心

浏览器的网页本身就是一个DOM的树形结构。其包含有:
1.更新:更新DOM节点;
2.遍历DOM节点:得到DOM节点;
3.删除:删除一个DOM节点;
4.添加:添加一个新的DOM节点。
在进行操作一个DOM节点的时候,就必须要先获得这个DOM节点。

1.2、获得DOM节点

获得DOM节点的原生代码:

// 对应的CSS选择器
var h1 = document.getElementsByTagName('h1');
var p1 = document.getElementsById('p1');
var p2 = document.getElementsByClassName('p2');
var father = document.getElementsById('father');

var childrens = father.children;
//获取父节点下的所有的节点
//father.firstChild
//father.lastChild

尽量使用jQuery()

1.3、更新DOM节点

更新DOM节点的代码:

<div id="id1">

</idv>

<script>
   var id1 = document.getElementsById('id1');
</script>

注:
用来操作文本的为:
1.id1.innerText='123' //修改文本的值
2.id1.innerHtml='<strong>123</strong>' //可以解析HTML文本标签

用来操作JavaScript的为:
1.id1.style.color = 'yellow'; //属性的使用 字符串 包裹
2.id1.style.fonsize = '20px';
3.id1.style.padding = '2em';

1.4、删除DOM节点

删除DOM节点的主要步骤为:先要获取父节点,通过父节点删除自己。
其代码为:

<div id="father">
      <h1>标题</h1>
      <p id="p1">p1</p>
      <p class="p2">p2</p>
</div>
<script>
      var self = document.getElementsById('p1');
      var father = p1.parentElement;
      father.removeChild(self)
       
       //删除的是一个动态的过程
       father.removeChild(father.children[0])
       father.removeChild(father.children[1])
       father.removeChild(father.children[2])
</script>

注:删除多个节点的时候,children是时刻都在变化的,在删除节点的时候需要特别注意。

1.5、插入DOM节点

在获得一个DOM节点的时候,如果这个DOM节点是空的,我们通过innerHTML便可以增加一个元素,但是这个DOM节点已经存在元素,因此这个方法就不行了。

所以就需要追加:

<p id="js">JavaScript</p>
<div id="list">
         <p id="se">JavaSE</p>
         <p id="ee">JavaEE</p>
         <p id="me">JavaME</p>
</div>

<script>
        var js = document.getElementsById('js');
        var list = document.getElementsById('list');
        list.appendChild(js);  //追加到后面
</script>

1.6、创建一个新标签,实现插入

代码:

<script>
        var js = document.getElementsById('js');      //已经存在的节点
        var list = document.getElementsById('list');
        //通过JavaScript再创建一个新的节点
        var newP = document.createElement('p');  //创建一个p标签
        newP.id = 'newP';
        newP.innerText = 'Hello';
        //创建一个标签节点
        var myScript = document.createElement('script');
        myScript.setAttribute('type','text/javascript');
        
        //创建一个style标签
        var myStyle = document.createElement('style');   //创建一个空的style标签
        myStyle.setAttribute('type','text/css');
        myStyle.innerHTML = 'body{20px;}';  //设置标签的内容
         
         document.getElementsByTagName('head')[0].appendChild(myStyle)
         
</script>

1.7、insertBefore

代码:

var ee = document.getElementsById('ee');
var js = document.getElementsById('js');
var list = document.getElementsById('list');
//要包含的节点.insertBefore(newNode,targetNode)
list.insertBefore(js,ee);

二、操作表单

2.1、表单的介绍

表单在网页中主要负责数据采集功能。
一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。

其包含:
1.文本框:text
2.下拉框:<select>
3.单选框:radio
4.多选框:checkbox
5.隐藏域:hidden
6.密码框:password
等等…
表单的目的就是提交信息。

2.2、获得要提交的信息

代码:

<form action="post">
     <p>
             <span>用户名:</span><input type="text" id="username">
     </p>

      <p>
             <span>性别:</span>
             <input type="radio" name="sex"  value="man" id="boy">
             <input type="radio" name="sex"  value="women" id="girl">
       </p>
</form>

<script>
         var input_text = document.getElementsById('username');
         var boy_radio = document.getElementsById('boy');
         var girl_radio = document.getElementsById('girl');

         //得到输入框的值
         input_text.value
         //修改输入框的值
         input_text.value = '123'

       //单选框,多选框等等固定的值,boy_radio.value只能取得当前的值
       boy_radio.checked;    //查看返回的结果,是否为true,如果为true,则被选中
       girl_radio.checked = true;    //赋值
</script>
         

2.3、提交表单

代码为:

<form action="https://www.baidu.com/" method="post" onsubmit="return aaa()">
       <p>
             <span>用户名:</span><input type="text" id="username" name="username">
        </p>
        <p>
            <span>密码:</span><input type="password" id="input-password">
        </p>
         
         <input type="hidden" id="md5-password" name="password">
 
        <botton type="submit">提交</button>
</form>

<script>
      function aaa(){
      alert(1);
      var uname = document.getElementsById('username');
      var pwd = document.getElementsById('input-password');
      var md5pwd = document.getElementsById('md5-password');
      
      md5pwd.value = md5(pwd.value);
      //可以检验判断表单的内容,true就是通过提交,false就是阻止提交
      return true;
      }
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript---DOM对象 的相关文章

  • Typescript:匿名函数内可能未定义的变量

    太长了 在匿名函数中使用变量之前检查变量仍然 TS 警告变量可能未定义 在下面的代码示例中变量baseDirId检查是否未定义 然后传递给 array map 函数 但 TS 发出警告baseDirId可以是未定义的 Typescript
  • 绑定 popstate 事件不起作用

    我尝试在浏览器的控制台中输入以下代码 window onpopstate function alert 1 然后单击后退按钮 没有显示任何警报 难道我做错了什么 或者是否不允许将 popstate 事件绑定到控制台的页面 使用 Chrome
  • 如何动态删除嵌套的json键?

    这是示例 json search facets author language value nep count 3 value urd count 1 source value West Bengal State Council of Vo
  • 图表.js.如何更改“标签”数组的字体样式?

    我从 Chart JS 库中获取了一个图表 截屏 https i stack imgur com DnuRq png var ctx document getElementById myChart var data labels HTML
  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • 无需重定向的 HTML 页面提交

    有没有什么方法可以在不使用ajax的情况下提交html表单而无需从当前页面重定向 你可以设置一个target 为您form 这样您就可以将表单提交到新选项卡 target blank 或一个小的 隐藏的iframe target nameo
  • 仅从功能区打开一个对话框

    我有一个带有登录按钮的功能区 可打开登录对话框 我想将对话框的数量限制为一个 我正在使用函数 displayDialogAsync startAddress options callback https learn microsoft co
  • 插件 gulp-babel 错误:插件/预设文件不允许导出对象,只能导出函数

    我现在尝试在我的 Ionic v1 应用程序中使用 JavaScript 2015 ES6 包 json name test version 1 0 0 dependencies ionic native deeplinks 4 18 0
  • 如何在单击按钮时清除反应挂钩中的间隔

    我正在用反应钩子构建一个简单的计时器 我有两个按钮启动和重置 当我单击开始按钮时 handleStart 函数工作正常 计时器启动 但我不知道如何在单击重置按钮时重置计时器 这是我的代码 const App gt const timer s
  • 为某个时刻添加持续时间 (moment.js)

    时刻版本 2 0 0 阅读文档后 http momentjs com docs manipulating add 我认为这很简单 Chrome 控制台 var timestring1 2013 05 09T00 00 00Z var tim
  • 如何使用 github 托管外部 CSS 文件?

    我将 css 上传到 github 然后转到网站上的文件并单击 raw 选项 我尝试将其添加到网页中 但 chrome 给出以下错误 资源解释为样式表 但使用 MIME 类型 text plain 进行传输 https raw github
  • 如何将焦点设置在 BootStrap 中的第一个输入字段上? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将焦点设置到独立于 id 的 HTML 表单中的第一个输入元素 https stackoverflow com questions 277544 how to set the focus to t
  • 为什么这个递归函数返回未定义?

    我正在尝试编写一个使用递归组合两个字符串的函数 我的代码如下 但我不知道为什么该函数返回未定义 特别是当我在基本情况下使用 console log 时 它不会打印未定义而是打印正确的值 var str3 function merge str
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • chrome 选项卡/窗口中的 window.open 行为

    我有一小段 javascript 旨在打开两个或更多选项卡 这在 FF 和 IE 中工作正常 但 chrome 会在新窗口而不是选项卡中打开第二个窗口 它不依赖于 url 因为我已经尝试过使用两个相同的 url 第一个在选项卡中打开 第二个
  • 如何捕获文本区域上的 Enter 按键而不是 Shift+Enter? [复制]

    这个问题在这里已经有答案了 I m doing it for texarea A function should be called when the user press Enter but nothing should be done
  • jQuery:向左滑动和向右滑动

    我见过slideUp and slideDown在 jQuery 中 左右滑动的功能 方式怎么样 您可以使用 jQuery UI 中的附加效果来做到这一点 详情请参阅此处 http docs jquery com UI Effects Sl
  • jQuery UI 对话框 - 关闭后无法打开

    我有一个问题jquery ui dialog box https jqueryui com dialog 问题是 当我关闭对话框然后单击触发它的链接时 除非刷新页面 否则它不会再次弹出 如何在不刷新实际页面的情况下回调对话框 下面是我的代码
  • 测试 jQueryUI 是否已加载

    我正在尝试调试网站 并且我认为 jQueryUI 可能未正确加载 如何测试 jQueryUI 是否已加载 if jQuery ui UI loaded OR if typeof jQuery ui undefined UI loaded 应
  • YouTube 点击时禁用 HTML5

    有没有办法让我们通过javascript禁用HTML5视频的 播放 暂停 点击全屏 功能 然后在我们再次需要时将其放回去 我不知道你是否可以禁用它们 但你可以使用 css 删除它们 video webkit media controls f

随机推荐

  • did双重差分法_政策评估利器DID:听起来很高端实际上很简单

    双重差分法 英文名Differences in Differences 简称DID 又名倍差法 连玉君老师也称为倍分法 作为政策评估的利器 DID近几年就是学术界的明星 大家去翻国内外TOP期刊 基本上每期都会有DID的paper 现在用个
  • 苹果ipad怎么刷机_苹果发布 iOS 13.4/iPadOS 13.4 开发者预览版 beta 3

    苹果今天发布了 iOS 和 iPadOS 13 4 第三个开发者测试版 距离第二个测试版发布相隔一周的时间 同时我们了解到苹果今天还同时推送了macOS Catalina 10 15 4 watchOS 6 2 tvOS 13 4 Beta
  • linux 增加静态路由命令

    linux 临时修改路由 方法一 添加路由 route add net 192 168 2 0 24 gw 192 168 1 1 或 route add host 192 168 2 8 dev 192 168 1 1 删除路由 rout
  • spring boot logback日志显示时间差8小时 不一定是时区问题

    今天遇到如题的问题 各种搜索关键字都找不到我想要的 基本搜索到的都是mysql的jdbcurl后面加一个配置 我用的是sqlserver跟这个没有关系 还有提到applicationContext里加上这句话的 我也试了没用 spring
  • 4-产品需求文档PRD

    一 掌握PRD主要内容 1 PRD常见形式 1 RP格式 借助原型绘制工具 如Axure 绘制原型 并在原型上直接撰写对应页面 内容的说明 产品简介 产品简介 版本说明 交互自查表 产品预览 功能清单 用excel做的 转图片存放 或者直接
  • centos7下源码编译安装python3.8

    0 简介 centos7下源码编译安装python3 8 3 7 版本均可 3 6可通过yum安装 yum install python36 略 Centos安装Python3 8 centos7下源码编译安装python3 8 3 7 版
  • for循环步长_非常详细的基础讲解:Python for循环及基础用法(较长建议收藏)

    今天为大家带来的内容是 非常详细的基础讲解 Python for循环及基础用法 较长建议收藏 文章内容主要为大家介绍python for 循环 它常用于遍历字符串 列表 元组 字典 集合等序列类型 逐个获取序列中的各个元素 具有不错的参考与
  • Ubuntu安装cffi报错

    ERROR Command errored out with exit status 1 command home qkb miniconda3 envs DenseFusion bin python3 5 u c import sys s
  • Go语言实现Onvif客户端:7、获取摄像头快照

    Go语言实现Onvif客户端 7 获取摄像头快照 文章目录 Go语言实现Onvif客户端 7 获取摄像头快照 1 代码 2 结果 3 查看 1 代码 摄像头对该时刻可以进行快照抓拍 抓拍结果可以以url地址的形式提供 在浏览器上可以直接查看
  • python/函数

    Python 函数 函数是组织好的 可重复使用的 用来实现单一 或相关联功能的代码段 函数能提高应用的模块性 和代码的重复利用率 你已经知道Python提供了许多内建函数 比如print 但你也可以自己创建函数 这被叫做用户自定义函数 定义
  • 2021-05-26

    import org apache flink api common functions RichMapFunction import org apache flink statefun flink core StatefulFunctio
  • 到底什么是数据中台?

    最近可能大家听到 数据中台 这个词越来越频繁了 有时候我跟一些朋友聊起来 也是都在说这个 但是一直不知道这到底是个什么 最近就看到这篇文章 觉得说的还挺好的 分享给大家看看 希望大家看完能对数据中台有一些认识 转载来源 公众号 AI 前线
  • 【面向对象】多态类继承

    package TcmStudy day26 public class Test01 public static void main String args Cat c1 new Cat 子类对象初始化 实例化子类对象 创建一个父类类型对象
  • 7.2-C 标准库的实现

    复习 sh xv6 c 仅依赖系统调用的 最小 命令行 Shell 本次课回答的问题 Q 如何在系统调用之上构建程序能够普遍受惠的标准库 本次课主要内容 C 标准库设计与实现 基于 libc 的应用程序 一 熟悉又陌生的 libc 为什么需
  • Python基本操作

    前言 啦啦啦 现在开始 打算做一期Python基础教程 欢迎大家来看哦 导读 这期文章真的是Python基础中的基础 相信有一定编程基础的小伙伴们都一定能看懂的 本文共分为以下几个部分 数与运算符 基本输入输出 注释 模块基本操作 小彩蛋
  • Blob总结

    Blob Blob表示二进制类型的大对象 在数据库管理系统中 将二进制数据存储为一个单一个体的集合 Blob 对象表示一个不可变 原始数据的类文件对象 Blob 表示的不一定是JavaScript原生格式的数据 File 接口基于Blob
  • 磁盘性能测试工具-FIO的安装及使用

    文章目录 FIO介绍 FIO安装 在线安装 离线安装 磁盘测试 命令行方式 测试结果说明 命令参数说明 配置文件方式 dd命令介绍 使用方法 FIO介绍 FIO是一款测试IOPS的工具 用于对磁盘进行压力测试和验证 磁盘I O是检查磁盘性能
  • Arcpy(二)逐要素批量裁剪矢量数据集

    文章目录 一 前言 1 1 需求 1 2 实现思路 二 代码 2 1 导入库 2 2 设置文件夹路径并获取图幅编号 2 3 逐图幅批量裁剪 2 4 删除空要素类 三 小结 参考资料 一 前言 1 1 需求 现有一个较大区域的地形图数据集 矢
  • Android性能测试

    Android应用性能测试 Android用户也许会经常碰到以下的问题 1 应用后台开着 手机很快没电了 应用耗电大 2 首次 非首次启动应用 进入应用特别慢 应用启动慢 3 应用使用过程中 越来越卡 CPU能力不足 内存泄露 4 应用页面
  • JavaScript---DOM对象

    文章目录 JavaScript DOM对象 一 操作DOM对象 1 1 DOM对象的核心 1 2 获得DOM节点 1 3 更新DOM节点 1 4 删除DOM节点 1 5 插入DOM节点 1 6 创建一个新标签 实现插入 1 7 insert