innerHTML 例如,在 ul 中添加 li 标签。
1 2 3 4 5 ul.innerHTML = ` <li>香蕉</li> <li>苹果</li> <li>鸭梨</li> ` ;
例子 - 通过按钮增加 li 元素。 HTML 代码
1 2 <button > 按钮</button > <ul > </ul >
JS 代码
1 2 3 4 5 6 7 8 let btn = document .querySelector(`button` );let ul = document .querySelector(`ul` );btn.onclick = function ( ) { let li = document .createElement("li" ); let txt = document .createTextNode("香蕉" ); ul.appendChild(li); li.appendChild(txt); };
节点操作 创建元素节点:createElement
创建文本节点:createTextNode
添加节点:appendChild
删除节点:removeChild
例如,制作水果列表的添加与删除。
HTML 代码
1 2 3 <input type ="text" name ="" id ="" /> <button > 按钮</button > <ul > </ul >
JS 代码
1 2 3 4 5 6 7 8 9 10 let btn = document .querySelector(`button` );let ul = document .querySelector(`ul` );let inp = document .querySelector("input" );btn.onclick = function ( ) { let value = inp.value; let li = document .createElement("li" ); let txt = document .createTextNode(value); ul.appendChild(li); li.appendChild(txt); };
例 2 - 【删】删除已有的 li 元素。 HTML 代码
1 2 3 4 5 <ul class ="fruitList" > <li > 香蕉</li > <li > 苹果</li > <li > 鸭梨</li > </ul >
JS 代码
1 2 3 4 5 6 7 8 let ul = document .querySelector(`ul` );let list = document .querySelectorAll(".fruitList li" );for (let i in list) { list[i].onclick = function ( ) { ul.removeChild(this ); }; }
以上内容编写于 2021 年 9 月 5 日 23 点 53 分。
事件对象 事件监听函数的形参可以获取事件对象。
通过事件对象可以获取鼠标坐标。
获取 x 坐标:e.clientX;
获取 y 坐标:e.clientY;
例 1 - 获取红色方块中鼠标点击的坐标。 HTML 代码
CSS 代码
1 2 3 4 5 .box { width : 200px ; height : 200px ; background-color : red; }
JS 代码
1 2 3 4 5 6 7 let box = document .querySelector(".box" );box.onclick = function (e ) { console .log("(" + e.clientX + "," + e.clientY + ")" ); console .log(e.clientX); console .log(e.clientY); };
例 2 - 随鼠标显示图片的大图。 HTML 代码
1 2 3 4 5 6 7 8 <div class ="smallPicList" > <img src ="images/1.png" alt ="" /> <img src ="images/2.png" alt ="" /> <img src ="images/3.png" alt ="" /> </div > <div class ="bigPicList" > </div >
CSS 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 .smallPicList img { width : 320px ; height : 160px ; } .bigPicList { position : absolute; } .bigPicList img { width : 640px ; height : 320px ; }
JS 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 let imgList = document .querySelectorAll(`.smallPicList img` );let bigpicList = document .querySelector(`.bigPicList` );for (let i in imgList) { imgList[i].onmouseenter = function ( ) { bigpicList.innerHTML = `<img src="${this .src} " alt="" />` ; }; imgList[i].onmouseleave = function ( ) { bigpicList.innerHTML = `` ; }; } let smallPicList = document .querySelector(`.smallPicList` );smallPicList.onmousemove = function (e ) { let x = e.clientX; let y = e.clientY; bigpicList.style.top = y + 10 + `px` ; bigpicList.style.left = x + 10 + `px` ; };
课后练习 1. 实现一个水果列表的添加和删除功能。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <!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 > <input type ="text" name ="" id ="" /> <button > Add</button > <ul > </ul > <script > let ul = document .querySelector(`ul` ); let inp = document .querySelector("input" ); let btn = document .querySelector("button" ); btn.onclick = function ( ) { let value = inp.value; let li = document .createElement(`li` ); let txt = document .createTextNode(value); ul.appendChild(li); li.appendChild(txt); }; </script > </body > </html >
2. 随鼠标显示放大图片的效果。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 <!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 > <style > .smallPicList img { width : 320px ; height : 160px ; } .bigPicList { position : absolute; } .bigPicList img { width : 640px ; height : 320px ; } </style > </head > <body > <div class ="smallPicList" > <img src ="images/1.png" alt ="" /> <img src ="images/2.png" alt ="" /> <img src ="images/3.png" alt ="" /> </div > <div class ="bigPicList" > </div > <script > let imgList = document .querySelectorAll(`.smallPicList img` ); let bigpicList = document .querySelector(`.bigPicList` ); for (let i in imgList) { imgList[i].onmouseenter = function ( ) { bigpicList.innerHTML = `<img src="${this .src} " alt="" />` ; }; imgList[i].onmouseleave = function ( ) { bigpicList.innerHTML = `` ; }; } let smallPicList = document .querySelector(`.smallPicList` ); smallPicList.onmousemove = function (e ) { let x = e.clientX; let y = e.clientY; bigpicList.style.top = y + 10 + `px` ; bigpicList.style.left = x + 10 + `px` ; }; </script > </body > </html >
3. 思考题:为什么水果列表中后添加的数据不能删除。 因为新的 li 元素未被获取到。
以上内容编写于 2021 年 9 月 7 日 00 点 45 分。