15-DOM节点操作

DOM节点分类

  • 元素节点 :获取元素节点 qureSelector;qureSelectorAll)
  • 文本节点:(innerHTML)
  • 属性节点:(element.src;element.id)

innerHTML   是可以改变元素节点内的所有内容的

在ul中添加li标签

ul.lnnerHTML = <li>1</li>

                         <li>1</li>

                         <li>1</li>

                         <li>1</li>

<button>按钮</button>
<ul></ul>


<script>
let btn = document.querySelector("button")
let ul = document.querySelector("ul")
btn.onclick = function(){
ul.innerHTML = `
<li>香蕉</li>
<li>苹果</li>
<li>菠萝</li> `}

innerHTML是大刀阔斧的操作

节点操作

  • 创建元素节点 createElement
  • 创建文本节点 createTextNode
  • 添加节点 appendChild

实现添加li标签内容

        let inp = document.querySelector("input");
        let btn = document.querySelector("button");
        let ul = document.querySelector("ul");
        btn.onclick = function(){
            let value = inp.value;
            let li = document.createElement("li");
            let txt = document.createTextNode(value);
            ul.appendChild(li);
            li.appendChild(txt);
        }

  • 删除节点 removeChild

实现删除li标签内容

    <ul class="fruit-list">
        <li>121</li>
        <li>321</li>
        <li>2312</li>
    </ul>
//添加class  定位元素class记得前面加.
let ul = document.querySelector(".fruit-list");
let list = document.querySelectorAll(".fruit-list li")
// 定位元素
        for (let i in list){
            list[i].onclick = function(){
                ul.removeChild(this);
            }
        };
// 为每个循环的元素添加click事件 删除用在父级标签上 

input文本框的value属性就是文本框输入的内容

事件对象

事件监听函数的形参可以获取事件对象。通过事件对象可以获取鼠标坐标。

  1. 获取X坐标: e.clientX;
  2. 获取Y坐标:e.clinentY;
<body>
    <div class="box"></div>
    <script>
        let box = document.querySelector(".box")
        box.onclick = function(event){
            console.log(event.clientX);
            console.log(event.clientY);
        }
    </script>
</body>

实现鼠标显示图片的大图

笔记:

  • e.style.top =
  • e.style.left=
  • e.style.right =
  • e.style.bottom =

获取需要被添加元素的div不需要使用All 不然添加的元素会变成数组形式,无法使用;

用多少写多少,或者注释没使用的,否则会报错;设置额外距离,否则就会因为遮挡而闪烁。

    <style>
        .picture-list img{
            width: 320px;
            height: 160px;
        }
        .big-pictrue{
            position: absolute;
        }
        .big-pictrue img{
            width: 640px;
            height: 320px;
        }
    </style>
</head>
<body>
    <div class="picture-list">
        <img src="images/1.jpg" alt="">
        <img src="images/2.jpg" alt="">
        <img src="images/3.jpg" alt="">
    </div>
    <div class="big-pictrue"></div>
    <script>
        let picList = document.querySelector(".picture-list") //因为要跟随行动所有需要获取它
        let imgList = document.querySelectorAll(".picture-list img");
        let bigPictrue = document.querySelector(".big-pictrue")
        for(let i in imgList){
            imgList[i].onmouseenter = function(){
                bigPictrue.innerHTML = `<img src= '${this.src}'>`
            };
            imgList[i].onmouseleave = function(){
                bigPictrue.innerHTML = ''
            }
        }
        picList.onmousemove = function(e){
            let ex = e.clientX;
            let ey = e.clientY;
            // console.log(`X坐标是${ex},Y坐标是${ey}`) //直接写变量即可 已经赋值给变量 无需this
            bigPictrue.style.top = ey + 10 +"px";
            bigPictrue.style.left = ex + 10+ "px"; //到这一步会闪动  需要额外添加像素防止阻挡闪烁
        }
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值