DOM,getElement系列qureySelector系列,操作元素类型,innerHTML,innerText,value,事件绑定,操作css样式,操作属性:getArrtlibute等~

本文主要是介绍DOM,getElement系列qureySelector系列,操作元素类型,innerHTML,innerText,value,事件绑定,操作css样式,操作属性:getArrtlibute等~,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DOM(Document Object Model): 文档对象模型
其实就是操作 html 中的标签的一些能力
 我们可以操作哪些内容
  - 获取一个元素
  - 移除一个元素
  - 创建一个元素
  - 向页面里面添加一个元素
  - 给元素绑定一些事件
  - 获取元素的属性
  - 给元素添加一些 css 样式
  - ...
DOM 的核心对象就是 docuemnt 对象
document 对象是浏览器内置的一个对象,里面存储着专门用来操作元素的各种方法
DOM: 页面中的标签,我们通过 js 获取到以后,就把这个对象叫做 DOM 对象

document文档对象

window.document


属性和方法:(分为getElement系列和qureySelector系列)

  • getElementById('id属性值')(id是唯一值,多个id相同一起测试,会返回第一个元素
  • getElementsByClassName('class属性')(返回是一组元素,长得像数组,称伪数组,类数组!

类数组和数组Array区别

1.类数组不能用Array的常用方法

2.类数组可以遍历,可以使用 [ ] 访问元素

      function test2(){var divEles = document.getElementsByClassName('d1')console.log(divEles)for(var i =0;  i < divEles.length; i++){console.log(divEles[i])}
  • getElementsByTagName('标签名')(返回是一组元素,长得像数组)通过标签名获取,必须使用索引才能准确的得到DOM元素。
  • getElementsByName('name属性')

  • querySelector:按照选择器的方式来获取元素,只能获得一个元素,并且是页面中第一个满足条件的元素。
  •  querySelectorAll:按照选择器的方式来获取元素,可以获取所有满足条件的元素,以一个伪数组的形式返回,获取到的是一组数据,需要用索引来获取每个DOM元素。

 将以上方法对照起来看,会更加直观的理解

<body><div id="box">我第一</div> <div class="box">我第二</div><div>我第三</div><div id="box">我第四</div> <div class="box">我第五</div><div>我最小</div><script>// var boxEle=document.getElementById('box') //获取页面中id为box的div标签,只能获得一个元素// console.log(boxEle)// var boxEle=document.getElementsByClassName('box') //获得一组元素// console.log(boxEle)// var boxEle=document.getElementsByTagName('div')//获得一组元素// console.log(boxEle)// console.log(boxEle[0])// console.log(document.querySelector('div')) //获取第一个div元素// console.log(document.querySelector('.box')) //获取第一个类名为box的// console.log(document.querySelector('#box'))//获取页面中第一个id名为box的元素// console.log(document.querySelectorAll('div')) //获取全部div元素// console.log(document.querySelectorAll('.box')) //获取全部类名为box的// console.log(document.querySelectorAll('#box'))//获取页面中全部id名为box的元素</script>

操作其内容  :

               1. 获取内容 * .innerHTML

  <div><p><span>hello</span></p></div><!-- 获取div中的结构!!!) --><script>var div=document.querySelector('div')console.log(div.innerHTML)</script>

                2. *.innerHTML = '新内容'  // 设置内容

<body><div></div><script>var div=document.querySelector('div')div.innerHTML='<span>你好</span>'</script>
</body>

                 3.  innerText 获取内容

 <div><p><span>hello</span></p></div> <!-- 获取div中的内容hello!!!) --><script>var div=document.querySelector('div')console.log(div.innerText)</script>
       <div></div><!-- 会把 <p>hello</p>作为文本出现在Div元素里面,而不会把P解析成标签--><script>var div=document.querySelector('div')div.innerText='<p>hello</p>'</script>

 

innerText 和 innerHTML 区别:

 1. innerText 以纯文本形式显示

2. innerHTML

                   value  表单元素内容

                   <input type="text"/>

                  操作非表单元素 innerText 和 innerHTML

<body><h2 id="title">元素一</h2><input type="text" name="message" placeholder="请输入内容" value="rose"><script>function test1(){var h2Ele = document.querySelector('#title')// h2Ele.innerHTML = '<h3>innerText设置的内容</h3>'  //以内容显示h2Ele.innerText = '<h3>innerText设置的内容</h3>'//以纯文本显示,即:内容: &lt;h3&gt;innerText设置的内容&lt;/h3&gt;console.log('内容 :',h2Ele.innerHTML);}test1()</script>
</body>

   操作表单元素  value:

    <h2 id="title">元素一</h2><input type="text" name="message" placeholder="请输入内容" value="rose"> function test2(){var inputEle = document.querySelector('input[name="message"]')inputEle.value = 'jack'console.log( inputEle.value )}test2()

 

 

 运用综合知识,来写一个岛上书店的案例,现实点击按钮时,会有相关的操作~

<!DOCTYPE html>
<html><head lang="en"><meta charset="UTF-8"><title>操作内容示例</title><style type="text/css">body,input,div,p {margin: 0;padding: 0;}body {font-size: 14px;font-family: "微软雅黑";line-height: 25px;}.content {width: 550px;margin: 0 auto;}.content img {float: left;width: 150px;}.r {float: left;width: 400px;}input[name="changeBook"] {width: 100px;height: 28px;line-height: 28px;text-align: center;font-size: 14px;font-family: "微软雅黑";margin: 10px 0 10px 0;}input[name="season"] {width: 50px;text-align: center;}.input {border: 1px solid green;font-size: 18px;font-weight: bold;}</style>
</head><body><div class="content"><img src="images/book.jpg" alt="岛上书店" /><div class="r"><div id="book">书名:岛上书店</div><input id="updatename" name="changeBook" value="换换名称" type="button"onclick="onUpdateBookName()" /><br>四季名称:<input name="season" type="text" value="春" /><input name="season" type="text" value="夏" /><input name="season" type="text" value="秋" /><input name="season" type="text" value="冬" /><br><br><input name="b2" type="button" value="input内容" onclick="onShowInput()" /><input name="b3" type="button" value="四季名称" onclick="onSeason()" /><input name="b4" type="button" value="清空页面内容" onclick="onClear()" /><p id="replace"></p></div></div><script type="text/javascript">/*做什么?点击换换名称按钮,更换书名1. 绑定点击事件2. 更改名内容*/function onUpdateBookName() {var divEle = document.querySelector('#book')divEle.innerHTML = '书名:javascript高级编程'}/*做什么?点击input内容按钮,将所有input按钮内容值拼接成字符串设置给p标签作为内容显示1. input内容按钮点击事件2. 将所有input标签内容值拼接成字符串3. 操作p标签内容*/function onShowInput() {var inputEles = document.querySelectorAll('input') //类数组//循环遍历类数组var str = ''for(var i = 0; i < inputEles.length; i++){var inputEle = inputEles[i]  // input元素str = str + inputEle.value + '  '}var pEle = document.querySelector('#replace')pEle.innerHTML = str}/*做什么?点击四季名称按钮,拼接四季名称显示*/function onSeason() {var seasonInputs = document.querySelectorAll('input[name="season"]')var str = ''for(var i = 0; i < seasonInputs.length; i++){var inputEle = seasonInputs[i]str = str +  inputEle.value + ' ' }var pEle = document.querySelector('#replace')pEle.innerHTML = str}function onClear() {document.write('')}</script>
</body></html>

  dom操作样式

          使用js代码动态操作样式

          1. 行间样式 style

              ele.style.样式名=>样式值

              ele.style.样式名 = 样式值

          2. 类样式

               ele.className=类名

                  注: 后面的类名会覆盖前面的类名   

               ele.classList.add(类名1)

               ele.classList.add(类名2)

                   '类名1 类名2 '

               获取非行间样式

                  window.getComputedStyle(元素).样式名

                     =>样式值

<style>.d1 {width: 200px;height: 200px;background-color: skyblue;}.d2{text-align: center;}.d3{width: 200px;height: 200px;background-color: pink;}</style></head><body><h2 style="color: red;">操作样式</h2><div>元素一</div><h3 class="d3">元素二</h3><p></p><button onclick="getStyleTest()">获取style样式</button><button onclick="setStyleTest()">设置style样式</button><button onclick="setClassStyle()">设置class样式</button><button onclick="getClassStyle()">获取非行间样式</button><script>// 获取h2标签的行内样式,显示h2的颜色function getStyleTest(){var h2Ele = document.querySelector('h2')var colorValue = h2Ele.style.color  //行内式var pEle = document.querySelector('p')pEle.innerHTML = colorValue}// 更改h2字体大小为44px ,背景色为蓝色function setStyleTest(){var h2Ele = document.querySelector('h2')h2Ele.style.fontSize = '44px'  // js代码操作样式名, 样式名用驼峰命令 font-size  -> fontSizeh2Ele.style.backgroundColor = 'skyblue'}function setClassStyle(){var divEle = document.querySelector('div')// divEle.className = 'd1'// divEle.className = 'd2'divEle.classList.add('d1')divEle.classList.add('d2')}// 控制台输出w为200pxfunction getClassStyle(){var h3Ele = document.querySelector('h3')var w = window.getComputedStyle(h3Ele).widthconsole.log('w :',w);}</script>

操作属性:js代码动态获取属性值或设置属性

1.获取 ele.getAttribute(属性名)=>属性值 

 ele.属性值 只针对本身拥有的属性,不能拿到自定义的属性

 设置属性:

ele.setAttribute(属性名,属性值)

ele.属性名=属性值

 移除属性:ele.removeAttribute(属性名)

 data-属性名

   <h2 id="title" class="d1" a="100" b="200">元素一</h2><h3>元素二</h3><a href="http://www.baidu.com">百度</a><img src="./06练习岛上书店/images/11239.png" alt="图片"><img src="" alt="图片2"><!-- 自定义属性 --><h4 data-index="1001" data-score="98">元素三</h4><button onclick="getAttr()">获取属性</button><button onclick="setAttr()">设置属性</button><button onclick="removeAttr()">移除属性</button><button onclick="getMyAttr()">获取自定义属性</button><script>function getAttr(){var h2Ele = document.querySelector('h2')  // 获取h2元素var imgEle = document.querySelector('img')  // 获取img元素var idValue =  imgEle.getAttribute('src')  // 获取h2元素id属性值console.log(idValue)console.log(imgEle.src)}function setAttr(){var h3Ele = document.querySelector('h3')h3Ele.setAttribute('id','titl2')h3Ele.setAttribute('a','1000')var imgEle = document.querySelectorAll('img')[1]// imgEle.setAttribute('src','./06练习岛上书店/images/book.jpg')imgEle.src='./06练习岛上书店/images/book.jpg'}function removeAttr(){var h2Ele = document.querySelector('h2')  // 获取h2元素h2Ele.removeAttribute('a')}function getMyAttr(){var h4Ele = document.querySelector('h4')var index =  h4Ele.dataset.scoreconsole.log(index)}

操作事件:

给元素绑定点击事件 ,直接给元素添加onclick属性事件

更提倡另外一种 :将元素和事件行为分离

 <button>按钮</button><div>元素一</div><script>var btn = document.querySelector('button')btn.onclick = function(){alert('绑定事件')}var divEle = document.querySelector('div')divEle.onclick = function(){divEle.innerHTML = '今天是周五'}</script>

 若有错误,请指正!

 

样式,  属性,事件

这篇关于DOM,getElement系列qureySelector系列,操作元素类型,innerHTML,innerText,value,事件绑定,操作css样式,操作属性:getArrtlibute等~的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/514485

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10