一站式搞定Javascript(四)dom操作

一级目录

二级目录

三级目录

前言: 上一章中我们讨论了数组和对象,这一章我们来看一下JS中自带的内置对象和操作Dom。

日期与Math内置对象

MathDate
绝对值 abs(-1.1)当前日期时间new Date()
向下取整 floor(-1.1)获取几号getDate()
向上取整 ceil(-1.1)获取星期几getDay()
四舍五入 Math.round(-1.1)年getFullYear()
随机数 random()月getMonth() + 1

注意:随机数的内置对象指的是0~1之间的随机数

练习1:封装一个取随机数的函数 50,100

     function getRandom(min,max){
            return Math.floor(Math.random() * (max - min + 1)) + min
        }
        console.log(getRandom(50,100))

练习2: 封装函数格式化时间:xxxx年x月x号 星期x xx点xx分xx秒

 function getDateStr(){
            var d = new Date();
            var year = d.getFullYear()
            var month = d.getMonth() + 1;
            var date1 = d.getDate()
            var day = d.getDay()
            var hour = d.getHours()
            var minutes = d.getMinutes()
            var second = d.getSeconds()
            var arr = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]
            return `今天是:${year}${month}${date1}${arr[day]} ${hour}${minutes}${second}`
        }
        console.log(getDateStr())

在这里插入图片描述

DOM操作

获取DOM

1.根据id名称获取 ,永远获取一个,如果出现相同的id名称则获取第一个
document.getElementById(“box”)
2.根据class名获取,获取的一组元素放进一个伪数组中
document.getElementsByClassName(“list”)
3.根据标签名获取 获取的一组元素放进一个伪数组中
document.getElementsByTagName(“li”)[2]
4.根据css选择器获取单个元素
document.querySelector(“.qwe>span”)
5.根据css选择器获取多个元素放在伪数组中
document.querySelectorAll(“ul>li”)
6.添加行内样式 元素.style.样式 = 样式值
div2.style.width = “100px”;

详细使用:

<div id="box" class="content">1</div>
    <div id="qwe" class="content">2</div>

    <div class="qwe">
        div
        <span>span</span>
    </div>

    <ul>
        <li class="list">1</li>
        <li class="list">2</li>
        <li class="list">3</li>
        <li class="list">4</li>
        <li class="list">5</li>
        <li class="list">6</li>
        <li class="list">7</li>
        <li class="list">8</li>
        <li class="list">9</li>
        <li class="list">10</li>
    </ul>
      // 1.根据id名称获取 永远获取一个,如果出现相同的id名称则获取第一个
        var div = document.getElementById("box")
        console.log(div)
        // 2.根据class名获取 获取的一组元素放进一个伪数组中
        var divs = document.getElementsByClassName("content")
        console.log(divs)
        console.log(divs[1])

        var lists = document.getElementsByClassName("list")
        console.log(lists[6])

        // 3.根据标签名获取 获取的一组元素放进一个伪数组中
        var lists = document.getElementsByTagName("li")[2]
        console.log(lists)

        // 4.根据css选择器获取单个元素
        var span = document.querySelector(".qwe>span")
        console.log(span)
        var li5 = document.querySelector("ul>li:nth-of-type(5)")
        console.log(li5)

        // 5.根据css选择器获取多个元素放在伪数组中
        var lists = document.querySelectorAll("ul>li")
        console.log(lists)


        // 6.添加行内样式 元素.style.样式 = 样式值
        // 样式在js中如果有横杠去掉横杠变成小驼峰
        var div2 = document.getElementsByClassName("content")[1]
        div2.style.width = "100px";
        div2.style.height = "100px";
        div2.style.backgroundColor = "pink"
    </script>

事件的绑定

DOM0级事件处理程序(传统方法):

直接在DOM元素的属性中指定事件处理函数。例如,在HTML元素中直接使用onclickonmouseover等属性。

语法: on事件名称=事件处理函数

<button onclick="alert('Hello!')">点击我</button>

或者在JavaScript中直接为DOM对象的事件属性赋值一个函数。

 		<div class="content">按钮2</div>
        var div = document.getElementsByClassName("content")[0];
        div.onclick = function(){
            console.log("按钮2被触发")
        }

在这里插入图片描述

DOM2级事件处理程序(推荐):

使用addEventListener方法为元素添加事件监听器。这种方法支持事件捕获和冒泡阶段,还可以为同一元素的同一事件添加多个监听器。

语法:元素.addEventListener(“事件类型”,“事件的处理函数”)

   var div = document.getElementsByClassName("content")[0];
   div.addEventListener("click",function(){
            console.log("dom1级绑定")
        })
鼠标事件表单事件
click 单击change 表单元素发生改变并失去焦点
dbclick 双击input 表单元素发生改变
mousemove 鼠标移动focus 聚焦
mouseenter 鼠标移入reset 表单重置
mouseout 鼠标移出select 选择文本
mouseleave 鼠标移出submit 表单提交
wheel 鼠标滚轮/

键盘事件
keysdown 按键按下
keyup 按键松开
keypree 按键按下并松开

练习:点击图片来回切换(图片地址自己替换)

    <img src="./img/01.png" alt="">
    <script>
        var arr = ["./img/01.png","./img/02.png","./img/03.png"];
        var img1 = document.getElementsByTagName("img")[0]
        var num = 0;
        img1.onclick = function(){
            num++;
            if(num >= arr.length){
                num = 0
            }
            img1.src = arr[num]
        }
    </script>

dom的增删改

增加

创建元素

     var div = document.createElement("div")
        div.innerHTML = "我是div标签"
        div.style.width = "100px";
        div.style.height = "100px";
        div.style.backgroundColor = "pink";
        console.log(div)

控制台:
在这里插入图片描述
插入
父元素.appendChild(子元素),成为最后一个子元素

    <div class="father">
        <span>1</span><span>2</span><span class="target">3</span><span>4</span><span>5</span>
    </div>

    <ul>
        <li>li1</li>
        <li>li2</li>
        <li>li3</li>
        <li>li4</li>
        <li>li5</li>
        <li>li6</li>
    </ul>
    <script>
     var div = document.createElement("div")
        div.innerHTML = "我是div标签"
        div.style.width = "100px";
        div.style.height = "100px";
        div.style.backgroundColor = "pink";
        console.log(div)
// js中有几个特殊标签不需要获取 document.body document.documentElement
        console.log(document.documentElement)
        document.body.appendChild(div)
    </script>


在这里插入图片描述

在这里插入图片描述
父元素.insertBefore(a,b) 插入a在b之前

//html还是按之前的
  var div = document.createElement("div")
        div.innerHTML = "我是div标签"
        div.style.width = "100px";
        div.style.height = "100px";
        div.style.backgroundColor = "pink";
var father = document.getElementsByClassName("father")[0]
var span3 = document.getElementsByClassName("target")[0]
father.insertBefore(div,span3)

在这里插入图片描述

删除

元素本身.remove()

       var lis = document.getElementsByTagName("li")
        for(let i = 0 ; i < lis.length ; i++){
            lis[i].onclick = function(){
                console.log(this.remove())
            }
        }

运行结果:点一个li删一个,可以自行尝试

父元素.removeChild(子元素)

var lis = document.getElementsByTagName("li")
var fatherUl = document.getElementsByTagName("ul")[0]
console.log( fatherUl.removeChild(lis[0]) )


替换

父元素.replaceChild(new,old)

        var lis = document.getElementsByTagName("li")
        var fatherUl = document.getElementsByTagName("ul")[0]
        var li = document.createElement("li")
        li.style.color = "red"
        li.innerHTML = "新的li"
        fatherUl.replaceChild(li,lis[4])

在这里插入图片描述

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值