赞
踩
昨天给大家分享了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使用
document.getElementById() : 通过标签中的id属性 来获取元素 如果已经知道了id 也可以用id名直接进行下一步操作
优点:精准
缺点:需要一个一个拿,使用时较为麻烦
适用范围:适合需要操作的元素不多时使用
document.getElementsByTagName() : 通过标签名获取元素
优点:方便快捷,一次性拿出多个
缺点:由于拿出的是多个 (一个集合) 导致无法精准到每个元素
适用范围:适合元素较多时使用(可以批量获取元素)
document.getElementsByClassName() : 通过标签中的class属性获取元素
优点:可以在较多元素中,精准锁定某些元素
缺点:和通过id来获取元素的方法一样,需要对应元素,较为繁琐
适用范围:可以搭配通过标签名获得原色==元素的方法一起使用,可以做到在大范围的元素中锁定需要的元素
document.getElementsByName() :通过标签中的name属性获取元素
优点:也和id一样可以较为精准的对应某些元素 但是id是唯一的 不能重复 但是name可以有重复的值
缺点:有些标签里面是没有name属性的 比如:div等
适用范围:在大范围元素中锁定一些有name属性的元素
onclick:点击事件
ondblclick : 双击事件
利用点击事件来切换元素属性(背景颜色):
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Score</title>
- <style type="text/css">
- div{
- width: 200px;
- height: 150px;
- background-color: burlywood;
- display: inline-block;
- }
- </style>
- </head>
- <body>
- <div id="d1" class="a" ></div>
- <div class="a"></div>
- <div ></div>
- <br>
- <button type="button" onclick="fn1()" name="bb">点我切换颜色</button>
- <button type="button" onclick="fn2()">点我切换颜色(类)</button>
- <button type="button" onclick="fn3()" name="bb">bbb</button>
-
- <script type="text/javascript">
- function fn1(){
- //通过id来调取 也可用 document.getElementById() 来获取id
- //但是这种方法只适用于少量的元素,如果元素过多,则需要定义许多id
- // d1.style.backgroundColor="pink";
-
- //标签选择器 去拿出多个元素 这样比拿出id要方便快捷 但是会拿出多个 所以是一个数组
- var ds=document.getElementsByTagName("div")
- ds.style.backgroundColor="pink";//这里的ds是一个数组,它不能设置标签
-
- //Cannot set properties of undefined
- //不能设置来自未定义的属性(设置background的时候报的错)
-
- //遍历数组
- for(var i=0;i<ds.length;i++){
- ds[i].style.background="pink";
- }
-
- //foreach 直接遍历数组
- for(let i of ds){
- //i就是每一个元素
- i.style.background="pink";
- }
- }
-
- function fn2(){
- var aa=document.getElementsByClassName("a")
- //只要碰到循环(尤其是foreach循环) 就不能用var 用let(定义局部变量)
- for( let i of aa){
- i.style.background="purple"
- }
- }
- function fn3(){
- var aa=document.getElementsByName("bb")
- //只要碰到循环(尤其是foreach循环) 就不能用var 用let(定义局部变量)
- for( let i of aa){
- i.style.background="purple"
- }
- }
- </script>
- </body>
- </html>
onfocus : 获得焦点事件
onblur : 失去焦点事件
利用焦点事件来实现输入框的值的变换
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Score</title>
- </head>
- <body>
- <!-- 30个输入框 -->
- <input type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
- type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
- type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
- type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
- type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input
- type="text"><input type="text"><input type="text"><input type="text">
-
- <button type="button" onclick="fn1('哈哈')">哈哈</button>
- <button type="button" onclick="fn1('嘻嘻')">嘻嘻</button>
-
- <script type="text/javascript">
- //填充信息的函数
- function fn1(a) {
- //1.拿到所有的输入框
- var is=document.getElementsByTagName("input")
- //2.更改值
- for(var i of is){
- i.value=a
- }
- }
- //修改信息的函数
- (()=>{
- //1.拿到所有输入框 记住拿出来的是个集合
- var is=document.getElementsByTagName("input")
- //2.更改值 (获得焦点事件,失去焦点事件)
- //碰到循环 不能用var (尤其是foreach循环) 要用let(定义局部变量)
- for(let i of is){
- //获得焦点事件
- i.onfocus=()=>{
- i.value=""
- }
- //失去焦点事件
- i.onblur=()=>{
- i.value="巴拉巴拉"
- }
- }
- })();
-
- </script>
- </body>
- </html>
onmouseover : 鼠标移入
onmouseout : 鼠标移出
也可以用鼠标移动事件来完成输入框文本的替换(需要把焦点事件的函数替换为鼠标移动事件的函数)
- (()=>{//鼠标移动事件
- //1.拿到所有输入框 记住拿出来的是个集合
- var is=document.getElementsByTagName("input")
- //2.更改值 (利用鼠标移动事件)
- //碰到循环 不能用var (尤其是foreach循环) 要用let(定义局部变量)
- for(let i of is){
- //鼠标移入事件
- i.onmouseover=()=>{
- i.value=""
- }
- //鼠标移出事件
- i.onmouseout=()=>{
- i.value="巴拉巴拉"
- }
- }
- })();
textContent : 标签的文本内容(定义的标签不生效 即不能识别HTML语句)
InnerHTML : 标签中的html内容(标签会生效 能够识别HTML语句)
checked :表示是否被选中(用于 单选框,多选框)
style : 标签中的style属性(用于设置样式)
value : 元素的值(适用具备value属性的元素)
dispaly 元素的显示方法
1.none:不显示(界面中也不会留有元素原本的位置)
2.block:以块状元素显示 (会跨行)
3.inline:以行状元素显示(在一行内)
4.inline-block 以行内块状元素显示(在行内,又可以跨行)
if(d1.style.display==="none"){
d1.style.display="block";
}else {
d1.style.display="none"
}
visibility 元素的显示方法,分两种状态
1.visible:可见
2.hidden:不可见(但是会占据空间)
if(d1.style.visibility==="visible"){
d1.style.visibility="hidden";
}else{
d1.style.visibility="visible"
}
opacity:元素的显示方式(主要用于控制元素的透明度,范围是0-1)
注意:只是设置成了全透明,但是元素仍然存在;
if(d1.style.opacity==0){
d1.style.opacity=1;
}else{
d1.style.opacity=0
}
}
利用元素显示来实现菜单隐藏功能,(点击菜单可以隐藏子菜单)用的都是今天教大家的知识哦,大家一起来试试吧!
示例代码如下:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Score</title>
- <style type="text/css">
- div{
- width: 100px;
- height: 100px;
- background-color: bisque;
- }
- </style>
- </head>
- <body>
- <div id="d1"></div>
- <button type="button" onclick="fn1()">点我隐藏</button>
- <!--hr 分割线标签 -->
- <hr >
- <!--ul 无序标签 ol 有序标签 -->
- <ul>
- <li ><i onclick="fn2('u1')">家电</i>
- <ul id="u1">
- <li>冰箱</li>
- <li>电视</li>
- <li>洗衣机</li>
- </ul>
- </li>
- <li><span onclick="fn2('u2')">水果</span>
- <ul id="u2">
- <li>苹果</li>
- <li>香蕉</li>
- <li>菠萝</li>
- </ul>
- </li>
- </ul>
- <hr>
- <table border>
- <tr>
- <!-- this 的意思就是把自己这个标签传入函数中 checked 是一个属性 表示是否被选中 -->
- <td><input type="checkbox" onclick="fn3(this.checked)"></td>
- <td><input type="checkbox"></td>
- <td><input type="checkbox"></td>
- <td><input type="checkbox"></td>
- <td><input type="checkbox"></td>
- <td><input type="checkbox"></td>
- <td><input type="checkbox"></td>
- <td><input type="checkbox"></td>
- <td><input type="checkbox"></td>
- <td><input type="checkbox"></td>
- </tr>
- </table>
- <script type="text/javascript">
- //隐藏元素的函数
- function fn1(){
- //用id来控制元素
-
- //dispaly 元素的显示方法
- //1.none:不显示(界面中也不会留有元素原本的位置)
- //2.block:以块状元素显示 (会跨行)
- //3.inline:以行状元素显示(在一行内)
- //4.inline-block 以行内块状元素显示(在行内,又可以跨行)
-
- // if(d1.style.display==="none"){
- // d1.style.display="block";
- // }else {
- // d1.style.display="none"
- // }
-
- //visibility 元素的显示方法,分两种状态
- //1.visible:可见
- //2.hidden:不可见(但是会占据空间)
-
- // if(d1.style.visibility==="visible"){
- // d1.style.visibility="hidden";
- // }else{
- // d1.style.visibility="visible"
- // }
-
- //opacity:元素的显示方式(主要用于控制元素的透明度,范围是0-1)
- //注意:只是设置成了全透明,但是元素仍然存在;
-
- if(d1.style.opacity==0){
- d1.style.opacity=1;
- }else{
- d1.style.opacity=0
- }
- }
-
- //隐藏菜单的函数
- function fn2(id){
- //根据id拿出对应的元素
- //将对应元素设置为不显示
- var uid=document.getElementById(id);
- if(uid.style.display==="none"){
- uid.style.display="block"
- }else{
- uid.style.display="none";
- }
- }
-
- //实现全选功能的函数
- //拿到是否被选中的状态
- function fn3(status){
- //拿到所有多选框
- //设置选中第一个的多选框的状态 status
- var is=document.getElementsByTagName("input")
- //遍历数组 记得要用let
- for(let i of is){
- //这里的i就是每一个多选框
- i.checked=status;
- }
- }
- </script>
- </body>
- </html>
今天的JS分享就到这里啦,精彩下期继续!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。