博客列表 >原生Js增删改查及解构赋值

原生Js增删改查及解构赋值

月缺
月缺原创
2021年10月03日 08:54:081266浏览

原生Js增删改查及解构赋值

解构赋值

  1. // 解构赋值
  2. const [a, b, c] = [1,2,3];
  3. console.log(a,b,c); // 打印 1 2 3
  4. const [arr, obj] = [[1,2,3], {name: '张三'}];
  5. console.log(arr, obj); // 打印 [1,2,3] {name: '张三'}
  6. const { name } = { name: '里斯', age: 18 };
  7. console.log(name); // 打印 里斯
  8. // function person(user) {
  9. // console.log(user.name, user.age, user.sex);
  10. // }
  11. function person({name, age, sex}) {
  12. console.log(name, age, sex);
  13. }
  14. person({name: '张三丰', age: 105, sex: '男'});

Dom元素的增删改查基本操作

  1. <p>我是原本的文档元素</p>
  2. <button onclick="deldom(event)">删除自身</button>
  3. <button onclick="update()">修改</button>
  4. <div class="home">
  5. <ul class="list">
  6. <li class="item">item1</li>
  7. <li class="item">item2</li>
  8. <li class="item">item3</li>
  9. <li class="item">item4</li>
  10. <li class="item">item5</li>
  11. </ul>
  12. </div>
  13. <script>
  14. // DOM增删改查
  15. // 新增操作
  16. let tag_p = document.createElement('p');
  17. tag_p.textContent = '我是新增的p标签元素';
  18. document.body.append(tag_p);
  19. /**
  20. * ? append新增操作是往当前目标节点内部末尾部分追加
  21. * ? insertAdjacentElement 新增函数,接收两个参数,相比较append,它根据第一个参数可以指定新增插入位置
  22. * afterBegin 开始标签之后, 第一个子元素
  23. * beforeBegin 开始标签之前, 是它的前一个兄弟元素
  24. * afterEnd 结束标签之后, 是它的下一个兄弟元素
  25. * beforeEnd 结束标签之前, 是它的最后一个子元素
  26. * */
  27. // document.body.insertAdjacentElement('afterBegin');
  28. // 删除操作
  29. function deldom(ev) {
  30. ev.target.remove();
  31. }
  32. // 更改操作
  33. // 先拿到目标文档节点,节点本身是一个对象数据类型,操作节点上的属性,就相当于更改文档
  34. function update() {
  35. let default_p = document.querySelector('p');
  36. default_p.style.backgroundColor = 'yellowgreen';
  37. default_p.textContent = '我是修改后的文档元素';
  38. }
  39. // 查询操作
  40. // querySelecto返回查询匹配到的第一个文档元素
  41. // querySelectorAll返回查询匹配到的所有文档元素, 类数组集合但不是数组
  42. const tag_uls = document.querySelector('.item');
  43. const tag_lis = document.querySelectorAll('.item');
  44. console.log(tag_uls, tag_lis);
  45. </script>

运行效果:
运行结果

dataset,classList对象的使用方式

  1. <ul class="list">
  2. <li data-index="15" class="item">元素标签1</li>
  3. <li class="item">元素标签2</li>
  4. <li class="item">元素标签3</li>
  5. <li data-index="12" class="item">元素标签4</li>
  6. <li class="item">元素标签5</li>
  7. <li class="item">元素标签6</li>
  8. </ul>
  9. <button onclick="update()">变更操作</button>
  10. <style>
  11. .active {
  12. color: #c9ff19;
  13. background-color: #536b04;
  14. }
  15. </style>
  16. <script>
  17. // dataset,classList对象的使用方式与场景,实例演示
  18. // dataset自定义属性
  19. let tag_lis = document.querySelectorAll('.item');
  20. let tatget_tag = document.querySelector('[data-index="12"]').dataset.index;
  21. [...tag_lis].filter((v) => v.dataset.index === tatget_tag)[0].style.backgroundColor = 'orangered';
  22. // classList对象添加元素节点样式类名
  23. let cls_tag = document.querySelector('[data-index="15"]').dataset.index;
  24. [...tag_lis].filter((v) => v.dataset.index === cls_tag)[0].classList.add('active');
  25. function update() {
  26. [...tag_lis].map(v=>{
  27. if(!v.dataset.index) {
  28. v.dataset.index = 15;
  29. }
  30. return v;
  31. });
  32. console.log(tag_lis);
  33. [...tag_lis].filter((v) => v.dataset.index === tatget_tag)[0].style.backgroundColor = 'orangered';
  34. [...tag_lis].filter((v) => v.dataset.index === cls_tag).map((item)=>item.classList.add('active'));
  35. }
  36. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议