使用原生JS操作网页的几个例子

JavaScript08

使用原生JS操作网页的几个例子,第1张

原生js操作网页

emmm

添加网页元素

移除网页元素

代码

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<style>

    div{

        border: 1px solid black

        width: 100px

        height: 100px

        text-align: center

    }

</style>

<body>

<div>div1</div>

<div>div2</div>

<script>

    var div = document.createElement("div")

    div.innerText = "这是使用js添加的元素"

    //添加一个div元素

 document.body.appendChild(div)

    alert("3秒后移除div1")

    //移除html元素

 setTimeout(function () {

        var divList = document.getElementsByTagName("div")

        divList[0].remove()

    },3000)

</script>

</body>

</html>

这两个很基础,其实所有其他js库(jquery之类的)能做的事情原生js都能做。

作为一名程序猿,经常遇到回调函数的情况,原生js的回调函数是一层一层的嵌套调用,而es6提供了一种新的写法,Promise,它可以把原本的嵌套回调函数实现成横向的调用,即链式调用。

下面看一个Promise的简单用法:

接着开始模拟:

首先,_Promise构造函数会接收一个函数resolver并执行,函数中又包含resolve和reject两个参数,然后,_Promise构造函数生成的实例有三种状态,分别是pending(初始值)、fullfilled(成功)和rejected(失败),且由pending变为成功或者失败后状态不可逆。

resolve和reject函数执行的时候会先判断状态,如果是pending则执行,且将状态变为fullfilled或者rejected,并将resolve/reject函数中参数传递给_result,以便then函数调用时使用。

因为有可能存在链式调用,所以执行then函数的返回值需要判断,如果isResolve或者isReject函数返回的是一个新的_Promise实例,则返回这个实例,否则返回当前实例

至此,Promise已经模拟完成~

原生键盘监听事件:按下一次按键,分为三个过程,按下—按住—松开

onkeydown:某个键被按下

onkeypress:某个键盘的键被按下或按住

onkeyup:某个键盘的键被松开

使用方法,一般来说,键盘监听是直接在整个页面文档上进行监听的,也就是document上

以下是原生的使用案例

//实际使用

document.onkeydown=function(e){ //对整个页面文档监听

var keyNum=window.event ? e.keyCode :e.which //获取被按下的键值

//判断如果用户按下了回车键(keycody=13)

if(keyNum==13){

alert('您按下了回车')

}

//判断如果用户按下了空格键(keycode=32),

if(keyNum==32){

alert('您按下了空格')

}

}

剩下另外两个按键方法同理

jquery的方式监听键盘事件

jquery的也分为三个过程,但是在事件名称上有所不同

keyup:某个键盘的键被松开

keydown:某个键被按下

keypress:某个键盘的键被按下或按住