首页 > 编程语言 >JavaScript笔记 09

JavaScript笔记 09

时间:2024-03-30 16:33:22浏览次数:24  
标签:JavaScript 对象 元素 笔记 获取 事件 var 09 节点

目录

01 DOM操作事件的体验

02 获取元素对象的五种方式

03 事件中this指向问题

04循环绑定事件

05 DOM节点对象的常用操作

    06 点亮盒子的案例

07 节点访问关系

08 设置和获取节点内容的属性

09 以上内容的小总结


 

01 DOM操作事件的体验

        js本身是受事件驱动的脚本语言

        什么是事件?

                一系列状态  比如: 点击事件 鼠标离开事件  页面加载事件

        驱动: 驱使程序动起来

        页面元素绑定事件的步骤:

                1.获取页面元素对象

                2.元素对象.on事件名称=匿名函数(js系统提供好了很多事件)

                3.在匿名函数里面定义执行的功能代码

02 获取元素对象的五种方式

        获取页面元素的五种方式:

        1.通过id获取元素对象

                var 变量=document.getElementById('元素id')

        2.通过class获取元素对象  返回的是一个伪数组对象

                var 变量=document.getElementByClassName('标签class属性')

                不能直接拿来当做节点对象操作

                要想使用其中的元素对象,必须通过伪数组[索引值]

                取出里面指定索引值的元素对象再践行操作

        3.通过标签名获取  返回值是伪数组

                var 变量=document.getElementsByTagName('标签名')

        4.通过选择器获取单个元素

                var 变量=document.querySelector('css选择器')

                只能选中单个元素

        5.通过选择器获取多个元素

                var 变量=document.querySelectorAll('选择器')

        伪数组:

                只有索引功能和length属性 但是没有数组的那些常用的函数(push pop shift...)

        循环遍历伪数组:

                for(var i=0;i<伪数组名.length;i++){

                        lis[i].style.backgroundColor='red'

                }

03 事件中this指向问题

        事件源:

        var box=document.getElementById('box');

        var box=document.querySelector('#box')

        console.log(box)

        事件名称 事件驱动函数

                事件源.on事件名称=事件驱动函数(匿名函数)

                box.οnclick=function(){

                        alert('你好')

                }

        在事件当中的this 指向的是当前绑定这个事件的事件源对象 

        也就是本次触发这个事件的事件源

        总结:  谁触发了这个事件 this就指向谁

                

04循环绑定事件

        如果页面多个元素 想要绑定同一个事件 并且事件代码功能也相同,

        那么就可以使用循环遍历的方式绑定.

        var btnArr=document.querySelectorAll('button');

        console.log(btnArr);

        for(var i=0;i<btnArr.length;i++){

                btnArr[i].οnclick=function(){

                        // 这个函数是页面加载时 循环给每一个按钮绑定的事件驱动函数

                        // 只有点击的时候才执行里面的代码

                        // 页面加载时只是绑定了函数

                        // 所以等到函数执行的时候也就是你点击的时候页面早就加载完毕了

                        // 页面加载完毕了 也就以为这这个循环早就结束了 也就是这个循环执行完了

                        // 那么这个 i 变量的值就已经是5了

                        // console.log(btnArr[i]);

                        // btnArr[i].style.backgroundColor='blue'

                        console.log(this);

                        this.style.backgroundColor='blue'

            }

        }

05 DOM节点对象的常用操作

        操作元素的class

        获取:    元素对象.className

        设置: 元素对象.className='新类名1 新类名2...'

                通过className属性改变标签类名  会全部设置上新赋的值 

                如果想要原本的类名 需要在赋值的时候也增加上

        设置行内样式:

                元素.style.css 属性名='属性值'

        

        操作图片标签的src属性: 图片对象.src

        操作元素的title属性: 元素对象.title

        小总结:

                对象.属性   不写等号就是获取

                对象.属性=值  写等号就是设置/修改

    06 点亮盒子的案例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        nav{
            height: 40px;
            line-height: 40px;
            text-align: center;
            width: 500px;
            margin:50px auto;
        }
        nav>div{
            float: left;
            height: 40px;
            padding: 0 20px;
            background-color: hotpink;
            margin-right: 5px;
            cursor: pointer;
            color:#fff;
        }
        nav>div.current{
            background-color: orange;
        }
    </style>
</head>
<body>
    <nav>
        <div class="current">首页</div>
        <div>商品页</div>
        <div>购物车页</div>
        <div >个人中心</div>
        <div>联系我们</div>
    </nav>
    <script>
        // 排他思想
            // 干掉所有人 留下我自己
        var divArr=document.getElementsByTagName('div')
        // console.log(divArr);
        // 循环绑定鼠标移入事件   onm ouseover  鼠标进入事件 只会触发一次
        for(var i=0;i<divArr.length;i++){
            // console.log(i);
            divArr[i].onmouseover=function(){
                // console.log(111);
                // this.style.backgroundColor='orange'
                // 排他思想 干掉所有人
                for(var i=0;i<divArr.length;i++){
                    divArr[i].className=''
                }
                // 留下我自己
                this.className='current'
            }
        }
    </script>
</body>
</html>

07 节点访问关系

        利用节点与节点之间的关系 找到指定的元素

        获取父节点对象: parentNode

        获取第一个子节点:firstElementChild

        获取最后一个子节点:lastElementChild

        获取上一个兄弟节点:previousElementSibling

        获取下一个兄弟节点:nextElementSibling

        获取所有子节点:

                childNodes

                children(常用)

08 设置和获取节点内容的属性

        元素对象.innerHtml

        元素对象.innerText

                获取时:

                        innerHTML可以获取内部所有的内容包括标签

                        innerText只能后去内部素有的标签内的文本内容 获取不到标签

                设置时:

                        他们两个都能把内部的内容全部清空然后替换成我们赋值的内容

                        如果字符串中带有标签

                                那么innerHTML会把标签渲染出来呈现在页面中

                                innerText不会吧标签渲染出来 只会按照普通字符串的形式展示

09 以上内容的小总结

        元素获取的五种方式:

                1.id 2.className 3.tagName 4.querySelector("选择器") 5.querySelectorAll("选择器")

        this指向问题:

                构造函数中的this指向新创建的对象

                普通函数中的this指向函数的调用者

                元素事件驱动函数中的this指向当前触发事件的那个元素

        循环绑定事件:

                多个元素绑定同一个事件 通过this获取当前触发事件的那个元素对象

        DOM节点的常用操作:

                操作样式:

                        元素对象.style.css属性名=属性值

                        操作class:

                                元素对象.className=''

                操作标签的其他的属性:

                        元素对象.src    title   href

        点亮盒子:

                排他思想

        节点访问关系:

                父节点  parentNode

                第一个子节点:firstElementChild

                最后一个子节点:lastElementChild

                上一个兄弟:previousElementSibling

                下一个兄弟:nextElementSibling

                所有子节点:children   childNodes(包括文本节点)

        元素对象内容:

                innerHTML  

                innerText

标签:JavaScript,对象,元素,笔记,获取,事件,var,09,节点
From: https://blog.csdn.net/m0_47045804/article/details/137174147

相关文章

  • 数学入门——均值不等式 学习笔记
    数学入门——均值不等式学习笔记简化形式若\(a,b>0\),则:\[\dfrac{2}{\dfrac{1}{a}+\dfrac{1}{b}}\le\sqrt[2]{ab}\le\dfrac{a+b}{2}\le\sqrt[2]{\dfrac{a^2+b^2}{2}}\]理解方式:https://www.bilibili.com/video/BV1Nf4y1G7xV基本形式若\(a,b>0\),则:\[\dfrac{n}{\dfrac{......
  • 运动学——匀变速直线运动 学习笔记
    运动学——匀变速直线运动学习笔记五个基本的量有\(v_0\)、\(v_t\)、\(a\)、\(t\)、\(x\)。五个公式少\(x\)的公式:\(v_t=v_0+at\).少\(a\)的公式:\(x=\dfrac{v_0+v_t}{2}t\).少\(v_t\)的公式:\(x=v_0t+\frac{1}{2}at^2\).少\(v_0\)的公式:\(x=v_tt-\frac{1}......
  • 天体力学——天体运动入门 学习笔记
    天体力学——天体运动入门学习笔记一、开普勒三大定律开普勒第一定律(椭圆定律、轨道定律)行星绕太阳的轨迹是椭圆轨道,太阳在椭圆的一个焦点上。开普勒第二定律(等面积定律)在相等时间内,行星与太阳的连线扫过的面积相等。结论:近日点速度较大,远日点速度较小。开普勒第三定律(周......
  • 【JavaScript系列】-- 对象
    今天我们将探讨JavaScript中的一个强大工具—-对象。对象就像生活中的各种工具,帮助你更好地组织和管理信息。在实际开发中,可以使用对象来表示用户信息、处理表单数据等。01、什么是对象JavaScript对象是一种包含属性和方法的数据类型,可视为一个多功能盒子,用于存放各种数据。在......
  • MogDB学习笔记之 -- 了解pagewriter线程
    MogDB学习笔记之--了解pagewriter线程本文出处:https://www.modb.pro/db/183172在前面的MogDB学习系列中,我们了解了核心的bgwriter进程,今天继续来学习另外一个主要的线程,即pagewriter;首先来看下数据库相关的参数设置:postgres=#selectname,setting,category,context......
  • python str.split和rsplit笔记
    点击查看代码"""rsplit和split方法演示str.split(sep=None,maxsplit=-1)str.rsplit(sep=None,maxsplit=-1)"""#不指定sep或sep为None,拆分空字符串或只包含空格的字符串,返回为[](空列表)#1.空字符串str_1=''li_1_1=str_1.split()li_1_2=str_1.split(sep=None......
  • 软件设计师笔记1
    Day1学习笔记----通过软件设计师文章目录前言一、数据的表示考点一:进制转换考点二:码制(原码/反码/补码/移码)考点三:浮点数的表示考点四:逻辑运算二、效验码考点1:奇偶效验码考点2:CRC循环冗余效验码考点3:海明效验码2.CPU组成(运算器和控制器)寻址方式总结Wecanbuildthe......
  • 2024.3.30 笔记
    AcWing372.棋盘覆盖设每个格子为\((i,j)\)\(i+j\)为偶数和\(i+j\)为奇数的点的两个集合构成二分图的两个点集,和为偶数的边的四周全是和为奇数的点,满足二分图的性质,题目即求以和为偶数和奇数的点构成的二分图的最大匹配constintdx[]={0,0,1,-1};constintdy[]=......
  • 《C++ Primer 第五版 中文版》第12章 动态内存【阅读笔记 + 个人思考】
    《C++Primer第五版中文版》第12章动态内存【阅读笔记+个人思考】12.1动态内存与智能指针12.1.1shared_ptr类静态内存包括:初始化只读数据段,初始化读写数据段,未初始化数据和常量数据段。详细在下面博客总结:Linux系统下C++程序运行时的内存布局及存储内容,生......
  • 嵌入式开发学习笔记1——keil软件入门
    学习笔记(2024.3.30)引言从对几个问题的思考入手:1、keil是什么?干什么用的?有什么优点?2、keil从哪里下载?怎么安装?3、keil学习路线图怎么比较合理?学习的顺序?4、怎么快速用起来?1、keil是什么?干什么用的?有什么优点?keil软件介绍Keil是一款单片机开发环境,主要研发8051微控制器......