当前位置:   article > 正文

JavaScript(Bom编程)_js根据id获取元素

js根据id获取元素

昨天给大家分享了JS的进阶,今天来继续给大家分享JS的BOM编程。


一,常用的编程元素

style:标签中的style属性(用于设置样式)

h1-h6:标题标签,从大到小排列

b:加粗标签

br:跨行标签

hr:分割线biaoq

font:字体标签

img:图片标签 需要先将图片传入html

src:图片地址

width:宽度

height:高度

background:背景

color:颜色

table:表格标签(需要搭配 tr 和td 使用 也就是行和列)

ul:无序标签

ol:有序标签 ul和ol都需要搭配li使用


二,获取元素的方法

1.通过id获取元素

document.getElementById() : 通过标签中的id属性 来获取元素 如果已经知道了id 也可以用id名直接进行下一步操作

优点:精准

缺点:需要一个一个拿,使用时较为麻烦

适用范围:适合需要操作的元素不多时使用


 2.通过标签名获取元素

document.getElementsByTagName() : 通过标签名获取元素

优点:方便快捷,一次性拿出多个

缺点:由于拿出的是多个 (一个集合) 导致无法精准到每个元素

适用范围:适合元素较多时使用(可以批量获取元素)


3.通过class属性获取元素

document.getElementsByClassName() : 通过标签中的class属性获取元素

优点:可以在较多元素中,精准锁定某些元素

缺点:和通过id来获取元素的方法一样,需要对应元素,较为繁琐

适用范围:可以搭配通过标签名获得原色==元素的方法一起使用,可以做到在大范围的元素中锁定需要的元素


4.通过name属性获取元素

document.getElementsByName() :通过标签中的name属性获取元素

优点:也和id一样可以较为精准的对应某些元素 但是id是唯一的 不能重复 但是name可以有重复的值

缺点:有些标签里面是没有name属性的 比如:div等

适用范围:在大范围元素中锁定一些有name属性的元素 


三,元素中的常用事件

1.点击事件

onclick:点击事件

ondblclick : 双击事件

利用点击事件来切换元素属性(背景颜色):

  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="utf-8">
  5.         <title>Score</title>
  6.         <style type="text/css">
  7.             div{
  8.                 width: 200px;
  9.                 height: 150px;
  10.                 background-color: burlywood;
  11.                 display: inline-block;
  12.             }
  13.         </style>
  14.     </head>
  15.     <body>
  16.         <div id="d1" class="a" ></div>
  17.         <div class="a"></div>
  18.         <div ></div>
  19.         <br>
  20.         <button type="button" onclick="fn1()" name="bb">点我切换颜色</button>
  21.         <button type="button" onclick="fn2()">点我切换颜色(类)</button>
  22.         <button type="button" onclick="fn3()" name="bb">bbb</button>
  23.         
  24.         <script type="text/javascript">
  25.             function fn1(){
  26.                 //通过id来调取 也可用 document.getElementById() 来获取id
  27.                 //但是这种方法只适用于少量的元素,如果元素过多,则需要定义许多id
  28.                 // d1.style.backgroundColor="pink";
  29.                 
  30.                 //标签选择器 去拿出多个元素 这样比拿出id要方便快捷 但是会拿出多个 所以是一个数组
  31.                 var ds=document.getElementsByTagName("div")
  32.                 ds.style.backgroundColor="pink";//这里的ds是一个数组,它不能设置标签
  33.                 
  34.                 //Cannot set properties of undefined
  35.                 //不能设置来自未定义的属性(设置background的时候报的错)
  36.                 
  37.                 //遍历数组
  38.                 for(var i=0;i<ds.length;i++){
  39.                     ds[i].style.background="pink";
  40.                 }
  41.                 
  42.                 //foreach 直接遍历数组
  43.                 for(let i of ds){
  44.                     //i就是每一个元素
  45.                     i.style.background="pink";
  46.                 }
  47.             }
  48.             
  49.             function fn2(){
  50.                 var aa=document.getElementsByClassName("a")
  51.                 //只要碰到循环(尤其是foreach循环) 就不能用var 用let(定义局部变量)
  52.                 for( let i of aa){
  53.                     i.style.background="purple"
  54.                 }
  55.             }
  56.             function fn3(){
  57.                 var aa=document.getElementsByName("bb")
  58.                 //只要碰到循环(尤其是foreach循环) 就不能用var 用let(定义局部变量)
  59.                 for( let i of aa){
  60.                     i.style.background="purple"
  61.                 }
  62.             }
  63.         </script>
  64.     </body>
  65. </html>

2.焦点事件

onfocus : 获得焦点事件

onblur : 失去焦点事件

利用焦点事件来实现输入框的值的变换

  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="utf-8">
  5.         <title>Score</title>
  6.     </head>
  7.     <body>
  8.         <!-- 30个输入框 -->
  9.         <input type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
  10.                 type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
  11.                 type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
  12.                 type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
  13.                 type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
  14.                 type="text"><input type="text"><input type="text"><input type="text">
  15.     
  16.         <button type="button" onclick="fn1('哈哈')">哈哈</button>
  17.         <button type="button" onclick="fn1('嘻嘻')">嘻嘻</button>
  18.         
  19.     <script type="text/javascript">
  20.     //填充信息的函数
  21.          function fn1(a) {
  22.                 //1.拿到所有的输入框
  23.                 var is=document.getElementsByTagName("input")
  24.                 //2.更改值
  25.                 for(var i of is){
  26.                     i.value=a
  27.                 }
  28.             }
  29.     //修改信息的函数
  30.         (()=>{
  31.                 //1.拿到所有输入框 记住拿出来的是个集合
  32.                 var is=document.getElementsByTagName("input")
  33.                 //2.更改值 (获得焦点事件,失去焦点事件)
  34.                 //碰到循环 不能用var (尤其是foreach循环) 要用let(定义局部变量)
  35.                 for(let i of is){
  36.                     //获得焦点事件
  37.                     i.onfocus=()=>{
  38.                         i.value=""
  39.                     }
  40.                     //失去焦点事件
  41.                     i.onblur=()=>{
  42.                         i.value="巴拉巴拉"
  43.                     }
  44.                 }
  45.         })();
  46.         
  47.     </script>
  48.     </body>
  49. </html>

3.鼠标移动事件

onmouseover : 鼠标移入

onmouseout : 鼠标移出

也可以用鼠标移动事件来完成输入框文本的替换(需要把焦点事件的函数替换为鼠标移动事件的函数)

  1. (()=>{//鼠标移动事件
  2. //1.拿到所有输入框 记住拿出来的是个集合
  3. var is=document.getElementsByTagName("input")
  4. //2.更改值 (利用鼠标移动事件)
  5. //碰到循环 不能用var (尤其是foreach循环) 要用let(定义局部变量)
  6. for(let i of is){
  7. //鼠标移入事件
  8. i.onmouseover=()=>{
  9. i.value=""
  10. }
  11. //鼠标移出事件
  12. i.onmouseout=()=>{
  13. i.value="巴拉巴拉"
  14. }
  15. }
  16. })();

四,HTML元素的常用属性

textContent : 标签的文本内容(定义的标签不生效 即不能识别HTML语句)

InnerHTML : 标签中的html内容(标签会生效 能够识别HTML语句)

checked :表示是否被选中(用于 单选框,多选框)

style : 标签中的style属性(用于设置样式)

value : 元素的值(适用具备value属性的元素)


五,元素的显示

1.display

dispaly 元素的显示方法 
                1.none:不显示(界面中也不会留有元素原本的位置)
                2.block:以块状元素显示 (会跨行)
                3.inline:以行状元素显示(在一行内)
                4.inline-block 以行内块状元素显示(在行内,又可以跨行)
                
                if(d1.style.display==="none"){
                    d1.style.display="block";
                }else {
                    d1.style.display="none"
                }

2.visibility

visibility 元素的显示方法,分两种状态
                1.visible:可见
                2.hidden:不可见(但是会占据空间)
                
                if(d1.style.visibility==="visible"){
                    d1.style.visibility="hidden";
                }else{
                    d1.style.visibility="visible"
                }

3.opacity

opacity:元素的显示方式(主要用于控制元素的透明度,范围是0-1)
                注意:只是设置成了全透明,但是元素仍然存在;
                
                if(d1.style.opacity==0){
                    d1.style.opacity=1;
                }else{
                    d1.style.opacity=0
                }
            } 


六,实验

利用元素显示来实现菜单隐藏功能,(点击菜单可以隐藏子菜单)用的都是今天教大家的知识哦,大家一起来试试吧!

示例代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Score</title>
  6. <style type="text/css">
  7. div{
  8. width: 100px;
  9. height: 100px;
  10. background-color: bisque;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <div id="d1"></div>
  16. <button type="button" onclick="fn1()">点我隐藏</button>
  17. <!--hr 分割线标签 -->
  18. <hr >
  19. <!--ul 无序标签 ol 有序标签 -->
  20. <ul>
  21. <li ><i onclick="fn2('u1')">家电</i>
  22. <ul id="u1">
  23. <li>冰箱</li>
  24. <li>电视</li>
  25. <li>洗衣机</li>
  26. </ul>
  27. </li>
  28. <li><span onclick="fn2('u2')">水果</span>
  29. <ul id="u2">
  30. <li>苹果</li>
  31. <li>香蕉</li>
  32. <li>菠萝</li>
  33. </ul>
  34. </li>
  35. </ul>
  36. <hr>
  37. <table border>
  38. <tr>
  39. <!-- this 的意思就是把自己这个标签传入函数中 checked 是一个属性 表示是否被选中 -->
  40. <td><input type="checkbox" onclick="fn3(this.checked)"></td>
  41. <td><input type="checkbox"></td>
  42. <td><input type="checkbox"></td>
  43. <td><input type="checkbox"></td>
  44. <td><input type="checkbox"></td>
  45. <td><input type="checkbox"></td>
  46. <td><input type="checkbox"></td>
  47. <td><input type="checkbox"></td>
  48. <td><input type="checkbox"></td>
  49. <td><input type="checkbox"></td>
  50. </tr>
  51. </table>
  52. <script type="text/javascript">
  53. //隐藏元素的函数
  54. function fn1(){
  55. //用id来控制元素
  56. //dispaly 元素的显示方法
  57. //1.none:不显示(界面中也不会留有元素原本的位置)
  58. //2.block:以块状元素显示 (会跨行)
  59. //3.inline:以行状元素显示(在一行内)
  60. //4.inline-block 以行内块状元素显示(在行内,又可以跨行)
  61. // if(d1.style.display==="none"){
  62. // d1.style.display="block";
  63. // }else {
  64. // d1.style.display="none"
  65. // }
  66. //visibility 元素的显示方法,分两种状态
  67. //1.visible:可见
  68. //2.hidden:不可见(但是会占据空间)
  69. // if(d1.style.visibility==="visible"){
  70. // d1.style.visibility="hidden";
  71. // }else{
  72. // d1.style.visibility="visible"
  73. // }
  74. //opacity:元素的显示方式(主要用于控制元素的透明度,范围是0-1)
  75. //注意:只是设置成了全透明,但是元素仍然存在;
  76. if(d1.style.opacity==0){
  77. d1.style.opacity=1;
  78. }else{
  79. d1.style.opacity=0
  80. }
  81. }
  82. //隐藏菜单的函数
  83. function fn2(id){
  84. //根据id拿出对应的元素
  85. //将对应元素设置为不显示
  86. var uid=document.getElementById(id);
  87. if(uid.style.display==="none"){
  88. uid.style.display="block"
  89. }else{
  90. uid.style.display="none";
  91. }
  92. }
  93. //实现全选功能的函数
  94. //拿到是否被选中的状态
  95. function fn3(status){
  96. //拿到所有多选框
  97. //设置选中第一个的多选框的状态 status
  98. var is=document.getElementsByTagName("input")
  99. //遍历数组 记得要用let
  100. for(let i of is){
  101. //这里的i就是每一个多选框
  102. i.checked=status;
  103. }
  104. }
  105. </script>
  106. </body>
  107. </html>


今天的JS分享就到这里啦,精彩下期继续!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/113284
推荐阅读
相关标签
  

闽ICP备14008679号