位置: IT常识 - 正文

【JavaScript】基于querySelector / querySelectorAll对元素的操作,为你的DOM API基础扫盲~(javascript基础语法)

编辑:rootadmin
【JavaScript】基于querySelector / querySelectorAll对元素的操作,为你的DOM API基础扫盲~

目录

一、通过querySelector / querySelectorAll获取元素

1.1 单个标签选中

1.2 多个标签选中

 二、基于这组DOM API,对元素进行操作

2.1 innerHTML获取/修改元素内容

2.2获取/修改元素属性

三、单标签元素属性的获取和修改

3.1 value

3.2checked

3.3 type

四、样式属性的修改和获取

4.1 fontSize行内样式操作

4.2 类名样式操作

五、操作节点

5.1、新增节点

5.2、删除结点


一、通过querySelector / querySelectorAll获取元素

推荐整理分享【JavaScript】基于querySelector / querySelectorAll对元素的操作,为你的DOM API基础扫盲~(javascript基础语法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript基础笔记,javascript基础编程,javascript基础编程,js基类,javascript基于,javascript基础,javascript基础,js基类,内容如对您有帮助,希望把文章链接给更多的朋友!

        浏览器提供的一个全局对象,类似于CSS中的选择器,可以精准的获取元素对象,这组API都来自于document下,document是浏览器提供的一个全局对象,表示当前页面DOM API基本都是documet对象的方法;

1.1 单个标签选中

        对于单个标签元素的获取,使用querySelector,即可;

如下代码:

<div class="hello" id="hi">你好</div> <script> let div = document.querySelector('div'); console.log(div); </script>

这时候就打开浏览器按下F12,选中控制台,就可以发现,刚刚获取的div元素结果都获取到了;(如下图)

1.2 多个标签选中

        querySelector只是获取单个元素标签,当出现多个相同的元素标签时,只会选中第一个;如果想把多个元素都获取到,可以使用querySelectorAll来完成操作,这个时候返回值就是一个数组,每个元素是一个对象;

如下代码:

<div class="hello" id="hi">你好</div> <div class="word">世界</div> <div class="China">中国</div> <script> let divs = document.querySelectorAll('div'); console.log(divs); </script>

打开浏览器按下F12,选中控制台就可以发现:(如下图)

 二、基于这组DOM API,对元素进行操作2.1 innerHTML获取/修改元素内容

        通过innerHTML获取的是标签内部的子元素内容,所以只适用于双标签,单标签不可以的

获取元素并修改div内容(如下代码)

<div> <span>hello</span> <span>world</span> </div> <script> let div = document.querySelector('div'); //读取元素 console.log(div.innerHTML); //修改元素 div.innerHTML = '<p>这里修改了div元素里的内容</p>' console.log(div.innerHTML); </script>

执行效果如下图:

2.2获取/修改元素属性

        通过querySelector / querySelectorAll对元素对象的获取,可以通过此对象对标签属性的修改,修改的就是标签中写的键值对;

如下代码:点击空的a标签,修改href;(不光是这个栗子,其他所有标签的属性也是通过类似的方法进行操作)

<a href="#">点我跳转百度</a> <script> let a = document.querySelector('a'); a.onclick = function() { a.href = "https://www.baidu.com"; } </script>三、单标签元素属性的获取和修改3.1 value

        通过value获取单标签元素的内容,例如input的标签中,value表示了输入框的内容,修改他,浏览器上的样式也会跟着修改;

如下代码:点击计数(按下+,数字加一,按下-,数字减一)

<input type="text" value="0"> <button class="add">+</button> <button class="sub">-</button> <script> let input = document.querySelector('input'); let add = document.querySelector('.add'); let sub = document.querySelector('.sub'); add.onclick = function() { //这里注意需要转化为int类型,否则就是字符串 let oldValue = parseInt(input.value); oldValue = parseInt(oldValue + 1); input.value = oldValue; } sub.onclick = function() { //这里注意需要转化为int类型,否则就是字符串 let oldValue = parseInt(input.value); oldValue = parseInt(oldValue - 1); input.value = oldValue; } </script>3.2checked

        checked表示了当前复选框的状态——被选中或者未被选中;

如下代码:(单选和全选)

<span>你有什么爱好?</span><br> <input type="checkbox" class="one">弹琴<br> <input type="checkbox" class="one">唱歌<br> <input type="checkbox" class="one">健身<br> <input type="checkbox" class="all">全选<br> <script> let solo = document.querySelectorAll('.one');//返回一个数组 let all = document.querySelector('.all'); all.onclick = function() { for(let i = 0; i < solo.length; i++) { solo[i].checked = all.checked; } } </script>3.3 type

        表示了当前单标签的type属性是什么,同时也可以对其进行修改;

【JavaScript】基于querySelector / querySelectorAll对元素的操作,为你的DOM API基础扫盲~(javascript基础语法)

如下代码:(显示密码和隐藏密码)

<span>输入密码:</span> <input type="password"> <button>显示密码</button> <script> let input = document.querySelector('input'); let button = document.querySelector('button'); button.onclick = function() { if(input.type == 'password') { input.type = 'text'; button.innerHTML = '隐藏密码'; }else if(input.type == 'text') { input.type = 'password'; button.innerHTML = '显示密码'; }else { alert('类型错误!') } } </script>四、样式属性的修改和获取4.1 fontSize行内样式操作

       CSS中的元素属性,都可以通过JS进行修改,通过 元素.style.属性 即可得到style的属性,例如fontSize,这个属性名和CSS中的样式名是对应的,但是CSS里使用脊柱命名,js中是使用小驼峰命名,于是CSS中的font-size就可以认为等价于fontSize;

如下代码:点击字体,开始变大

<h2 style="font-size: 30px;">点击我可以变大</h2> <script> let h2 = document.querySelector('h2'); h2.onclick = function() { let oldSize = h2.style.fontSize; oldSize = parseInt(oldSize); oldSize += 10; //设置样式的值的时候一定要带上单位! h2.style.fontSize = oldSize + 'px'; } </script>4.2 类名样式操作

        CSS开发中最常用的是通过类选择器进行选择,通过修改class属性,实现修改样式的效果,而在JS中通过 元素.className 的方式获得属性,因为在 JS中class是一个关键字,于是就用className来表示这个类属性了~

如下代码:(白天模式and夜间模式)

<style> /*白天模式*/ .light { color: black; background-color: white; } /*夜间模式*/ .night { color: aliceblue; background-color: black; } /*将div铺满整个网页*/ /*html铺满其父类——整个浏览器*/ html { height: 100%; } /*body铺满其父类html*/ body { height: 100%; } /*div铺满其父类body*/ div { height: 100%; } </style> <div class="light"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus? </div> <script> let div = document.querySelector('div'); div.onclick = function() { if(div.className == 'light') { div.className = 'night'; }else { div.className = 'light'; } } </script>五、操作节点5.1、新增节点

分为两个步骤:

第一步:创建元素结点(如下代码)

<body> <script> let div = document.createElement('div'); div.id = 'mydiv';//设置id属性 div.className = 'divName';//设置class属性 div.innerHTML = '好久不见你还好吗?'; console.log(div); </script></body>

解释:

        此时浏览器上并不会有显示,只是创建出了一个新的div结点并填充了属性;通过写下console.log(div),可以在浏览器的控制台里观察到此标签;(下如图)

第二步:把元素结点插入到dom树中;(有两种方法)

        方法一:通过appendChild 或者 append将结点插入到指定结点的最后一个孩子结点的后面(如下代码)

<body> <div class="target"> <div>1</div> <div>2</div> <div>3</div> </div> <script> let div = document.createElement('div'); div.id = 'mydiv';//设置id属性 div.className = 'divName';//设置class属性 div.innerHTML = '好久不见你还好吗?'; console.log(div); let target = document.querySelector('.target'); target.appendChild(div);//这里也可以使用append达到同样的效果 </script></body>

效果如下:(浏览器页面)

 效果如下:(浏览器控制台)

         方法二:使用 insertBefore(要插入的结点,要插入的位置) 将节点插入到指定的节点位置(如下代码,插入到下标为1的位置;“注意:下标从0开始”)

<body> <div class="target"> <div>1</div> <div>2</div> <div>3</div> </div> <script> let div = document.createElement('div'); div.id = 'mydiv';//设置id属性 div.className = 'divName';//设置class属性 div.innerHTML = '好久不见你还好吗?'; console.log(div); let target = document.querySelector('.target'); target.insertBefore(div, target.children[1]);//表示插入到第1个孩子结点的位置(下标从0开始) </script></body>

效果如下:(浏览器页面)

  效果如下:(浏览器控制台)

5.2、删除结点

使用 removeChild 删除子节点

如下代码:

<div id="top"> <div>1</div> <div id="nested">我是要被删除的结点</div> <div>2</div> </div> <script> let d = document.getElementById("top"); let nested = document.getElementById("nested"); let throwawayNode = d.removeChild(nested); </script>

注意:

返回值为该被删除节点;被删除节点只是从 dom 树被删除了, 但是仍然在内存中, 可以随时加入到 dom 树的其他位置;

本文链接地址:https://www.jiuchutong.com/zhishi/288826.html 转载请保留说明!

上一篇:【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测(yolov5m)

下一篇:灯光璀璨的曼哈顿下城,美国纽约 (© New York On Air/Offset/Shutterstock)(灯光璀璨的夜晚)

  • 抖音怎么查看直播动态(抖音怎么查看直播)

    抖音怎么查看直播动态(抖音怎么查看直播)

  • 荣耀X30Max屏幕材质(荣耀x30i屏幕尺寸)

    荣耀X30Max屏幕材质(荣耀x30i屏幕尺寸)

  • hp打印机怎么重新设置wifi(hp打印机怎么重置网络)

    hp打印机怎么重新设置wifi(hp打印机怎么重置网络)

  • 淘宝的淘菜菜在哪里(淘宝的淘菜菜在哪里发货)

    淘宝的淘菜菜在哪里(淘宝的淘菜菜在哪里发货)

  • 抖音怎么设置别人无法下载(抖音怎么设置别人看不到评论)

    抖音怎么设置别人无法下载(抖音怎么设置别人看不到评论)

  • 华硕主板提示usb过载(华硕主板提示cpu fan error)

    华硕主板提示usb过载(华硕主板提示cpu fan error)

  • Excel删除重复项怎么弄(excel删除重复项保留的是哪一个)

    Excel删除重复项怎么弄(excel删除重复项保留的是哪一个)

  • 登录vivo账号显示网络异常(为什么vivo账号登录没反应)

    登录vivo账号显示网络异常(为什么vivo账号登录没反应)

  • excel数字0显示不出来怎么办(excel数字0显示不出来怎么设置)

    excel数字0显示不出来怎么办(excel数字0显示不出来怎么设置)

  • pcdn是什么文件夹(pcdr是什么文件)

    pcdn是什么文件夹(pcdr是什么文件)

  • 酷狗豪华vip有什么用(酷狗音乐的豪华vip是多少钱)

    酷狗豪华vip有什么用(酷狗音乐的豪华vip是多少钱)

  • 华为med-al20是什么型号(华为medal20是什么型号手机)

    华为med-al20是什么型号(华为medal20是什么型号手机)

  • 钉钉悬浮窗播放算时长吗(钉钉悬浮窗播放算时间吗)

    钉钉悬浮窗播放算时长吗(钉钉悬浮窗播放算时间吗)

  • 抖音评论背景是黑色的(抖音评论背景是白色)

    抖音评论背景是黑色的(抖音评论背景是白色)

  • 12306用户名怎么填都不对(12306用户名怎么写?举例说明)

    12306用户名怎么填都不对(12306用户名怎么写?举例说明)

  • 手机怎么充电不伤电池(手机怎么充电不费电池)

    手机怎么充电不伤电池(手机怎么充电不费电池)

  • qq人脸识别如何登录(QQ人脸识别如何使用)

    qq人脸识别如何登录(QQ人脸识别如何使用)

  • 光纤猫24小时开着要多少电(光猫多长时间开关一次比较好)

    光纤猫24小时开着要多少电(光猫多长时间开关一次比较好)

  • 滴滴如何更换实名认证(滴滴如何更换实名认证信息)

    滴滴如何更换实名认证(滴滴如何更换实名认证信息)

  • 打印页数怎么设置(打印页数怎么设置成一页)

    打印页数怎么设置(打印页数怎么设置成一页)

  • 苹果11怎么关闭刘海(苹果11怎么关闭勿扰模式)

    苹果11怎么关闭刘海(苹果11怎么关闭勿扰模式)

  • 兄弟是什么(兄弟是什么生肖)

    兄弟是什么(兄弟是什么生肖)

  • 华为怎么开锁屏密码(华为怎么开锁屏密码?)

    华为怎么开锁屏密码(华为怎么开锁屏密码?)

  • deebot怎么设置(deebot怎么连接)

    deebot怎么设置(deebot怎么连接)

  • 苹果电脑充几个小时(苹果电脑充几个小时的电,还是显示电量低)

    苹果电脑充几个小时(苹果电脑充几个小时的电,还是显示电量低)

  • 扫地机器人尘盒怎么开(扫地机器人尘盒清理刷)

    扫地机器人尘盒怎么开(扫地机器人尘盒清理刷)

  • iphone录屏可以录多久(iphone录屏可以录外界人声嘛)

    iphone录屏可以录多久(iphone录屏可以录外界人声嘛)

  • 动态壁纸怎么下载(动态壁纸怎么下载使用)

    动态壁纸怎么下载(动态壁纸怎么下载使用)

  • qq四叶草会掉吗(qq四叶草断了能恢复吗)

    qq四叶草会掉吗(qq四叶草断了能恢复吗)

  • 电脑开机自动进入bios界面的原因及解决办法(电脑开机自动进入bios怎么解决)

    电脑开机自动进入bios界面的原因及解决办法(电脑开机自动进入bios怎么解决)

  • dedecms织梦系统防黑仿攻击的目录安全设置方法(织梦系统基本参数)

    dedecms织梦系统防黑仿攻击的目录安全设置方法(织梦系统基本参数)

  • 进项税转出的会计凭证
  • 怎样在网上申报营业执照年检
  • 抵扣旅客运输增值税报表怎么填
  • 个人向公司账户存款
  • 网上社保增减员操作流程
  • 新成立公司交税
  • 属于企业期间费用的有
  • 个人所得税申报操作流程
  • 500元以下免税发票有哪些
  • 留存收益转增资本有什么好处
  • 电商刷单的成本如何处理?
  • 营改增广告标牌制作的税务怎么处理
  • 进项发票当月不抵扣怎么入账
  • 公司之间借款如何做账
  • 实收资本重复交的印花税可以申请退税吗?
  • 消费金融服务要交税吗
  • 其他业务收入和其他业务成本
  • 采购均价怎么计算
  • 公司买回来做样衣的服装怎么做会计分录?
  • 生产人员社保怎么做账
  • 税款所属期是什么意思举例子
  • 这个月只开了销项负数怎么办
  • 本月销项大于进项
  • 费用发票可以不上账吗
  • 交易性金融资产入账价值怎么计算
  • php数组可以使用哪些键名
  • macbookpro桌面整理
  • 程序员编程代码大全
  • macos big sur最新版本
  • sentstrt.exe - sentstrt进程是什么文件 有什么用
  • php简单文件管理
  • 【强化学习探索01】Win10 下gym安装
  • Chrome谷歌浏览器网页
  • TypeError The view function did not return a valid response. The function either returned None 的解决
  • 学生个人网页制作html5
  • php邮件发送类
  • vue怎么用bootstrap
  • php中文字符串截取
  • 预付一年的房租并收到了发票会计分录
  • apt apt-get aptitude
  • 应收账款结账损失怎么算
  • 税控盘全额抵扣发票怎么勾选
  • 办公用品和低值易耗品节省成本吗
  • 企业股东分红是按会计利润还是税务利润
  • 哪些进项税额不得抵扣?
  • 实收资本的账务处理与其他应收款
  • 固定资产折旧费用的账务处理
  • 错账更正方法有几种分别适用于什么情况
  • 现金日记账余额自动生成公式
  • 不抵扣进项税额转出怎么做分录处理
  • 公司发放加班补贴怎么做账
  • 企业固定资产可以不提折旧吗
  • 原材料暂估入库是什么意思
  • 资产负债表中的存货怎么算
  • 认证未抵扣往哪里记
  • 股本是什么类科目怎么记
  • 报名费无发票要补交吗
  • 非限定性净资产属于什么科目
  • 航天金税服务费发票在哪打印
  • 年终奖会计怎么走账
  • mysql语句删除表
  • mysql5.7.31安装配置教程
  • windows 2003 iis+php5+mysql+phpmyadmin 详细安装配置
  • mac怎么打开terminal
  • 微软9月补丁
  • Win10 Mobile RS2预览版14915上手视频评测
  • dos批处理高级教程合编.pdf
  • android消息队列使用
  • excel一行首尾互换
  • jquery时钟插件
  • unity as
  • 微信假消息
  • input checked选择
  • python+Django+apache的配置方法详解
  • 单位购买房产作废怎么办
  • 济宁税务大厅上班时间
  • 买车险代收车船税多少钱
  • 成都国税工勤人员待遇
  • 武汉代账公司一般怎么收费
  • 城镇土地使用税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设