JavaScript--Web APIs学习笔记(一)基础阶段+获取元素+操作元素

  • Web APIs与ECMAScript关联
  • API和Web API
  • 获取元素
  • 事件
  • 元素修改

目录

一、js基础阶段和Web APIs阶段

二、DOM基础——获取元素

1. 获取元素getElementByld获取带有ID的元素对象

2. getElementByTagName()获取某类标签元素

 3. 通过HTML5新增方法获取元素

4. 获取特殊元素(body、html)

三、事件基础

1. 事件由三部分(事件三要素)组成:事件源、事件类型、事件处理程序

2. 执行事件

3. 常见的鼠标事件

 四、操作元素

1. 改变元素内容

2. 操作元素——点击按钮,改变文本显示时间

 3. 操作元素——点击按钮改变图片(地址)

 4. 操作元素——表单属性操作


一、js基础阶段和Web APIs阶段

ECMAScript基础语法为后面做铺垫,Web APIs是js的应用,大量使用JS基础语法做交互效果。

Web APIs阶段学习DOM和BOM。

①BOM:Brower Object Model(浏览器对象模型),改变网页内容结构和样式

②DOM:Document Object Model(文档对象模型)

API(Application Programming Interface,应用程序接口)

Web API是浏览器提供的一套操作浏览器功能和页面元素的API(BOM,DOM)

MDN详细API:https://developer.mozilla.org/zh-CN/docs/Web/API

二、DOM基础——获取元素

1. 获取元素getElementByld获取带有ID的元素对象

返回一个匹配特定ID的元素对象,由于元素的 ID 在大部分情况下要求是独一无二的(ID大小写敏感),这个方法自然而然地成为了一个高效查找特定元素的方法。

    <div id = 'time'>2022-4-7</div>
    <script>
        //get获取element元素,通过by,ID方法
        timer = document.getElementById('time');
        console.log(timer);
        console.dir(timer);//console.dir返回的是元素对象,更好查看里面的属性和方法
    </script>

2. getElementByTagName()获取某类标签元素

document.getElementByTagName()得到的列表是伪数组,返回的是获取元素对象的集合

例一:获取标签li

    <ul>
        <li>哈哈,标签1</li>
        <li>哈哈,标签2</li>
        <li>哈哈,标签3</li>
        <li>哈哈,标签4</li>
    </ul>
    <script>
        var lis = document.getElementsByTagName('li');
        console.log(lis);
        console.log(lis[0]);
    </script>

例二:获取指定副标签下的子标签

        var ol = document.getElementsByTagName('ol');
        console.log(ol[0].getElementsByTagName('li'))
    <ul>
        <li>哈哈,标签1</li>
        <li>哈哈,标签2</li>
        <li>哈哈,标签3</li>
        <li>哈哈,标签4</li>
    </ul>
    <ol id="ol">
        <li>另外标签</li>
        <li>另外标签</li>
        <li>另外标签</li>
    </ol>
    <script>
        var lis = document.getElementsByTagName('li');
        console.log(lis);
        console.log(lis[0]);
        // var ol = document.getElementsByTagName('ol');
        // console.log(ol[0].getElementsByTagName('li'))

        var ol = document.getElementById('ol');
        console.log(ol.getElementsByTagName('li'));     
    </script>

 3. 通过HTML5新增方法获取元素

getElementsByClassName('类名'),根据类名获取某些元素集合

querySelector('选择器')  根据指定选择器返回第一个元素对象,里面选择器需要加符号 .class,#id

querySelectorAll('选择器')返回指定选择器的所有对象集合

    <div class="box">盒子1</div>
    <div class="box">盒子2</div>
    <div id="nav">
        <ul>
            <li>产品1</li>
            <li>产品2</li>
        </ul>
    </div>
    <script>
        var boxes = document.getElementsByClassName('box');
        var firstBox = document.querySelector('.box');
        var nav = document.querySelector('#nav');
        var li = document.querySelector('li');
        var allBox = document.querySelectorAll('All.box');//这里和getElementsByClassName('box')相似
        var lis = document.querySelectorAll('li');

        console.log(boxes);
        console.log(firstBox);
        console.log(nav);
        console.log(li);
        console.log(allBox);
        console.log(lis);
    </script>

4. 获取特殊元素(body、html)

①获取body元素

document.body  //返回body元素对象

②获取html元素

document.documentElement     //返回html元素对象

三、事件基础

1. 事件由三部分(事件三要素)组成:事件源、事件类型、事件处理程序

(1)事件源:事件被触发的对象

(2)事件类型:如何触发、什么事件,如鼠标点击(onclick)或者鼠标经过

(3)事件处理程序:通过一个函数赋值触发

<body>
    <button id="btn">事件源:小明</button>
    <script>
        var btn = document.getElementById('btn');//
        btn.onclick = function(){
            alert('去学习');
        }
    </script>
</body>

2. 执行事件

(1)获取事件源

(2)绑定事件、注册事件

(3)添加事件处理程序

    <div>123</div>
    <script>
        var div = document.querySelector('div');
        div.onclick = function(){
            console.log('123被选中了');
        }

    </script>

3. 常见的鼠标事件

鼠标事件 触发条件

onclick

鼠标点击左键触发
onmouseover 鼠标经过出发
onmouseout 鼠标离开出发
onfocus 获得鼠标焦点触发
onblur 失去鼠标焦点出发
onmousemove 鼠标移动出发
mouseup

鼠标弹起触发

onmousedown 鼠标按下触发

 四、操作元素

1. 改变元素内容

element.innerText:从起始位置到终止位置的内容,但它去除html标签,同时空格和换行也会去掉

element.innerHTML:起始位置到终止位置的全部内容,包括html标签,同时保留空格和换行

区别:

    <div id="div3"></div>
    <div id="div4"></div>
    <p id="p2">
        p标签里面
        <span>123</span>
    </p>
    <script>
        //innerText不识别html标签
        var div3 = document.querySelector('#div3');
        var div4 = document.querySelector('#div4');
        div3.innerText = '<strong> 今年</strong>2022';
        div4.innerHTML = '<strong> 今年</strong>2022';
        var p2 = document.querySelector('#p2');
        console.log(p2.innerHTML);
        console.log(p2.innerText);
    </script>

 

2. 操作元素——点击按钮,改变文本显示时间

    <button id="btn2">显示当前时间</button>
    <div id="div2">某个时间</div>
    <script>
        //获取元素
        var btn2 = document.querySelector('#btn2');
        var div2 = document.querySelector('#div2');
        //注册事件
        btn2.onclick = function(){
            // div2.innerText = '2022-4-7';
            div2.innerText = getDate();

        }
        function getDate(){
            var date = new Date();
            var year = date.getFullYear();
            var month = date.getMonth()+1;
            var dates = date.getDate();
            return '今天'+year+'年'+month+'月'+dates+'日';
            // return date;
        }
    </script>

 

 3. 操作元素——点击按钮改变图片(地址)

    <button id="img1">图片一</button>
    <button id="img2">图片二</button>
    <img src="D:\image\img1.jpg" alt="" id="img">
    <script>
        var img1=document.getElementById('img1');
        var img2=document.querySelector('#img2');
        var img=document.querySelector('#img');
        img1.onclick = function(){
            img.src='D:/image/img1.jpg';
            img.title='图片一-粉色云'
        }
        img2.onclick = function(){
            img.src='D:/image/img2.jpg';
            img.title='图片二-动漫图'
        }
    </script>

 4. 操作元素——表单属性操作

利用DOM可以操作如下表单的属性:

type、value、checked、selected、disabled

表单里面的值(文字内容)是通过value来修改的

    <!-- 表单属性操作 -->
    <br>
    <button id="btn3">点击按钮</button>
    <input type="text" value="输入内容">
    <script>
        var btn3=document.querySelector('#btn3');
        var input=document.querySelector('input');
        btn3.onclick=function(){
            // input.innerHTML='点击了';//不生效,因为表单里面值是用value来修改的
            input.value = '被点击了';
            // btn3.disabled = true;
            this.disabled = true;//作用相同,this只想的调用的btn3
        }
    </script>

猜你喜欢

转载自blog.csdn.net/weixin_44400887/article/details/123999310