博客列表 >实例演示dom增删改的常用方法与留言板及自定义样式

实例演示dom增删改的常用方法与留言板及自定义样式

P粉479712293
P粉479712293原创
2022年08月18日 23:15:59312浏览

题目一:实例演示dom增删改的常用方法

对应的js文件如下:

  1. // *创建ul元素:
  2. const ul=document.createElement('ul');
  3. // *用此方法能够看见了的元素(添加到页面中)
  4. document.body.append(ul);
  5. // *循环添加li元素
  6. for(let i=0;i<5;i++){
  7. // *添加li元素
  8. const li=document.createElement('li');
  9. // *追加li元素的内容显示在页面上
  10. li.append('item-'+(i+1));
  11. ul.append(li);
  12. }
  13. console.log(ul);
  14. // *添加li元素
  15. const li=document.createElement('li');
  16. // *li元素追加内容
  17. li.append('nuw_item');
  18. li.style.color='red';
  19. // *获取第3个子元素
  20. const item=ul.querySelector('li:nth-of-type(3)');
  21. // *在该节点之前
  22. item.before(li);
  23. // *克隆(括号里要加上true,才能连内容一块拷贝)
  24. let newNode=li.cloneNode(true);
  25. // *把克隆出来的节点放在第3个节点后面
  26. item.after(newNode);
  27. // *在当前列表的前面插入一个标题
  28. const h3=document.createElement('h3');
  29. // *h3追加内容
  30. h3.append('城市之光');
  31. // *在ul之前插入h3
  32. ul.insertAdjacentElement('beforebegin',h3);
  33. // *在ul之后插入html标签
  34. ul.insertAdjacentHTML('afterbegin','<li style="color:red">北京</li>');
  35. // *在</ul>之前插入html标签
  36. ul.insertAdjacentHTML('beforeend','<li style="color:green">上海</li>');
  37. // *在</ul>之后插入html标签
  38. ul.insertAdjacentHTML('afterend','<h3>美好时刻</h3>')
  39. // *被替换的旧节点
  40. const oldNode=ul.querySelector('li:last-of-type');
  41. const link=document.createElement('a');
  42. // *新节点
  43. link.href='https://www.php.cn';
  44. link.append('php中文网');
  45. // *替换旧节点
  46. ul.replaceChild(link,oldNode);
  47. // *remove:移除
  48. ul.firstElementChild.remove();
  49. ul.lastElementChild.remove();

对应的浏览器效果图如下:

题目二:改写留言板案例

对应的html文件如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <input type="text" onkeydown="addWords(this)" placeholder="请输入留言" autofocus >
  11. <ul class="list"></ul>
  12. <script src="../static/第19章/2改写留言板案例.js"></script>
  13. </body>
  14. </html>

对应的js文件如下:

  1. // *创建留言函数
  2. function addWords(ele){
  3. console.log(ele);
  4. console.log(event);
  5. console.log(event.type);
  6. console.log(event.key);
  7. if(event.key=='Enter'){
  8. // *1.留言非空验证
  9. if(ele.value.length==0){
  10. alert('留言不能为空');
  11. ele.focus();
  12. return false;
  13. }
  14. // *2.从输入框获取留言
  15. console.log(ele.value);
  16. // *3.创建ul标签
  17. const ul=document.querySelector('.list');
  18. // *4.为每条留言后面添加删除按钮(此时还是输入框的值),并且单击按钮时触发删除函数
  19. ele.value = ele.value + '<button onclick="del(this.parentNode)">删除</button>';
  20. // *5.把输入框的值放在li内,并且li放在ul后
  21. ul.insertAdjacentHTML('afterbegin',`<li>${ele.value}</li>`);
  22. // *6清空输入框
  23. ele.value=null;
  24. }
  25. }
  26. // *调用删除函数
  27. function del(ele){
  28. return confirm('是否删除?') ? ele.remove():false;
  29. }

对应的浏览器效果图如下:

题目三:实例演示添加自定义属性

对应的html文件如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <!-- *第一个示例 -->
  11. <div class="btn-group">
  12. <button data-index="1" onclick="console.log(this.dataset.index);">btn1</button><br>
  13. <button data-index="2" onclick="console.log(this.dataset.index);">btn2</button><br>
  14. <button data-index="3" onclick="console.log(this.dataset.index);">btn3</button>
  15. </div>
  16. <!-- *第二个示例 -->
  17. <div data-my-email="1234567@qq.com" class="baiyun">我的邮箱</div>
  18. <script src="../static/第19章/3实例演示添加自定义属性.js"></script>
  19. </body>
  20. </html>

对应的js文件如下:

  1. const div=document.querySelector('.baiyun');
  2. console.log(div);
  3. console.log(div.dataset.myEmail);

对应的浏览器效果图如下:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议