webAPI第一弹---JS

Posted 写Bug的渣渣高

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webAPI第一弹---JS相关的知识,希望对你有一定的参考价值。

WEBAPI

WEb API是浏览器提供的一套操作浏览器功能,和页面元素的API,现阶段我们主要针对于浏览器讲解常用的API,主要针对浏览器做交互效果

DOM

文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言(html或者XML)的标准编程接口。
可以通过这些接口来改变网页的neritic,结构和样式

1.API是为我们程序员提供的一个接口,帮助我们实现某种功能,我们会使用就可以了,不必纠结内部做如何实现
2.WbAP1主要是针对于浏览器提供的接口,主要针对于浏览器做交互效果。
3.Veb API一般都有输入和输出(函数的传参和返回值),Web API很多都是方法(函数)

获取元素

1.通过id获取
2.通过标签获取
3.通过类名
4.通过选择器选择

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <div class="box">盒子</div>
        <div class="box">盒子</div>
        <div id="time">2020.06.07
        <ul>
            <li>1234</li>
        </ul>
        </div>
        <ul id="three">
            <li>ggzx</li>
            <li>ggzx</li>
            <li>ggzx</li>
            <li>ggzx</li>
        </ul>
        <script type="text/javascript">
            console.log('1.通过id获取元素对象')
            const time =  document.getElementById('time')
            console.log(time)
            console.log(typeof time)
            console.log('..打印我们返回的元素对象,更好的查看里面的属性和方法')
            console.dir(time)
            console.log('2.通过标签名,返回带有该标签的集合,以为数组的形式存储')
            const list = document.getElementsByTagName('li')
            console.log(list)
            console.log(list[0])
            console.log('..得到的元素是动态的,下面通过元素修改内容,在重新输出,证明元素是动态的')

            for (let i = 0; i < list.length; i++) 
                console.log("遍历li第"+i+"个元素",list[i])
            
            console.log('3.结合使用1,2种方法,获取某个id标签内的ul的li属性')
            const ul = document.getElementById('time')
            const li1 = ul.getElementsByTagName('li')
            console.log(li1)

            console.log('4.HTML5新增方法获取')
            const boxes =  document.getElementsByClassName('box')
            console.log(boxes)

            console.log('5.选择器返回指定选择器的第一个元素对象,切记里面的选择器需要加符号')
            const firstBox = document.querySelector('.box')
            const id = document.querySelector('#time')
            const firstLi = document.querySelector('li')
            console.log('querySelectAll,返回指定选择器的所有对象')

            console.log('6.获取body和html,注意html')
            const body = document.body
            const html = document.documentElement
            console.log(body,html)
        </script>
    </body>
</html>

事件概述JavaScript使我们有能力创建动态页面,而事件是可以被JavaScript侦测到的行为。简单理解:触发–响应机制。

网页中的每个元素都可以产生某些可以触发JavaScript的事件,例如,我们可以在用户点击某按钮时产生一个
事件,然后去执行某些操作。

事件:
事件源:事件被触发的回想,例如按钮
获取事件源:document.getElementById(‘btn’)
事件类型:如何触发,什么事件,比如鼠标点击onclick,鼠标经过,或者是键盘按下
btn.onclick = function ()
alert(‘点击按钮’)

事件处理程序:通过一个函
数赋值的方式

执行事件的步骤
1.获取事件源
2.注册事件(绑定事件)
3.添加事件处理程序(采取函数赋值形式)

操作元素

修改网页内容、结构和样式

案例:点击按钮,修改div的内容为日期

<html>
<!--32-->
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <button>显示当前系统事件</button>
    <div>11 </div>
    <script>
        const btn = document.querySelector('button')
        const div = document.querySelector('div')
        //获取元素,注册事件
        btn.onclick = function ()
            div.innerText = getDate()
        

        function getDate() 
            const date = new Date();
            const year = date.getFullYear()
            const month = date.getMonth()+1
            const dates = date.getDate()
            const arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期七']
            const day = date.getDay()
            return year+'-'+month+''+dates+' '+arr[day]
        
    </script>
</body>
</html>

#### 获取节点内容
注意:
innerTEXT显示的标签内容,该内容不包括换行和空格
innerHTML包括着该节点内部的内容以及标签内容

<html>
<!--32-->
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div>11</div>
    <strong>加粗字体</strong>
    <p>
          ggzx

    </p>
    <script>
//        使用innerText和innerHtml获取文字
        const div = document.querySelector('div')
        div.innerText = '<strong>加粗字体</strong>'
        //现在就会识别html了,w3c标准
        div.innerHtml = '<strong>加粗字体</strong>'
    //使用innerText和innerHtml获取文字,html
        const p = document.querySelector('p')
        console.log(p.innerText)
        console.log(p.innerHTML)
    </script>
</body>
</html>

修改元素属性

1.innerText innerHTML
2.src,href
3.id alt title
案例:点击按钮切换img中的src:图片源

<html>
<!--32-->
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <button id="ldh">刘德华</button>
    <button id="zxy">张学友</button>
    <br>

    <img src="imges/ldh.jpg"/>
    <script>
        const ldh = document.getElementById('ldh')
        const zxy = document.getElementById('zxy')
        const img = document.querySelector('img')

    //    注册事件
        zxy.onclick = function ()
            img.src = 'imges/ldh.jpg'
        
        ldh.onclick = function ()
            img.src = 'imges/zxy.jpg'
        
    </script>
</body>
</html>

操控表单标签的属性

type value checked selected disabled
案例:登录页面的密码框,可以显示密码,可以隐藏密码

<html>
<!--32-->
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box
            width: 400px;
            margin:100px auto;
        
        .box input
        
            height:45px;line-height:45px;width:500px;margin:0 auto;font-size:18px;padding:0;vertical-align:top;
            border:0;outline:none;
        
        .box button
        
            width:130px;height:47px;margin:0;padding:0;
            outline:none;
            border: 0 none;
        
    </style>
</head>
<body>
    <div class="box">
        <input type="password" placeholder="在此处输入密码" name="" id="">
        <button>显示</button>
    </div>
<script>
    const btn = document.querySelector('button')
    const input = document.querySelector('input')
    btn.onclick = function () 
        if (btn.innerText === '显示')
            input.type = 'text'
            btn.innerText = '关闭'
        else 
            input.type = 'password'
            btn.innerText = '显示'
        
    
</script>
</body>
</html>


修改元素样式大小颜色位置等

1.element.style 行内样式操作
2.element.className 类名样式操作
注意:
1.样式是驼峰命名法,即style标签内font-size,在使用时候需要用.fontSize
2.JS修改style产生的是行内样式,css权重较高,能覆盖内嵌样式

<html>
<!--32-->
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div
            height: 100px;
            width: 100px;
            background-color: black;
        
    </style>
</head>
<body>
    <div>
    </div>
    <button>修改颜色</button>
<script>
    const box = document.querySelector('div')
    const btn = document.querySelector('button')
    console.log(btn)
    console.log(box)
    btn.onclick = function () 
        console.log('点击了btn')
        box.style.backgroundColor = 'purple'
    
</script>
</body>
</html>

注意:这里直接修改sytle,style名字需要是驼峰名字

以上是关于webAPI第一弹---JS的主要内容,如果未能解决你的问题,请参考以下文章

JSwebAPI---第一弹

Java系列第一弹-预备阶段 1 基本的Dos命令

PPK谈JS笔记第一弹

重操JS旧业第一弹:Script与JS加载

前端面试怎么准备?第一弹

ASENET MVC 5 with Bootstrap and Knockout.js 第一弹