博客列表 >JavaScript DOM增查改删和简易留言板

JavaScript DOM增查改删和简易留言板

Pharaoh
Pharaoh原创
2022年07月27日 17:58:15299浏览

DOM增查改删基础方法

  • document.createElement(‘标签’) 创建一个元素
  • append(string/ele) 在某个父节点之内,在最后追加一个子节点
  • before(string/ele) 在某节点之前添加一个节点
  • after(string.ele) 在某节点之后添加一个节点
  • cloneNode(true) 克隆某个节点,参数 true 克隆节点,节点属性,后代,参数 fasle 克隆节点,后代,不克隆属性
  • insertAdjacentElement(‘位置’,ele)
  • insertAdjacentHTML(‘位置’ , ‘标签+文本’)
    • insertAdjacentHTML 位置属性
    • beforeBegin 在节点之前加入兄弟节点
    • afterBegin 在节点之后加入子节点
    • beforeEnd 在节点结束标签之前,加入子节点
    • afterEnd 在节点结束标签之后,加入兄弟节点
  • replaceChild(元素,被替换元素) 替换节点,用在父节点
  • remove() 删除节点

内容

  • textContent 返回内容,包括 style 标签及内容,和内联样式内容
  • innerText 返回文本
  • innerHTML 返回带标签的文本(不包括自身),ele.innerHTML='<a>xxx</a>'也可以赋值(可以解析 HTML 标签),使用 append 追加给 createElement 创建的新元素
  • outerHTML 返回带标签的文本(包括自身),outerHTML = '<a>xxx</a>' 替换元素的值,类似 innerHTML

自定义属性获取

  • ele.dataset.去掉 data-的属性

获取 css 样式(只读)

-getComputedStyle(ele,null)

实例

  1. // createElement('标签') 创建元素
  2. let newtag = document.createElement("h3");
  3. newtag.append("hello world");
  4. // append(string/ele) 追加到父节点的最后子节点,要在父结点上使用
  5. document.body.append(newtag);
  6. // before(string/ele) 在某个元素之前添加节点,在当前元素上使用
  7. let tagdiv = document.createElement("div");
  8. tagdiv.append("我要到P标签之前");
  9. document.body.firstElementChild.before(tagdiv);
  10. // after(string/ele) 在某个元素之后添加节点,在当前元素上使用
  11. let taga = document.createElement("a");
  12. taga.href = "sofresh.top";
  13. taga.append("我在hello world 后面");
  14. // document.body.lastElementChild.after(taga);
  15. // document.body.querySelectorAll("h3")[0].after(taga);
  16. newtag.after(taga);
  17. // cloneNode(true) 克隆节点,在要被克隆的节点上使用
  18. // 参数为true是克隆其自身,属性和后代,fasle不克隆属性,只克隆自身和后代
  19. let newtaga = taga.cloneNode(true);
  20. document.body.append(newtaga);
  21. let h3 = document.createElement("h3");
  22. h3.append("插入ul之前");
  23. document.querySelector("ul").insertAdjacentElement("beforeBegin", h3);
  24. document
  25. .querySelector("h3:nth-of-type(1)")
  26. .insertAdjacentHTML("afterEnd", "<p>那我在你后面</p>");
  27. let save = document.querySelector("ul");
  28. save.insertAdjacentHTML("afterBegin", "<p>我先进ul</p>");
  29. save.insertAdjacentHTML("beforeEnd", "<p>我先后面进ul</p>");
  30. let li1 = document.createElement("li");
  31. li1.append("i'm not friendly");
  32. li1.style.color = "red";
  33. document.querySelector("ul > li:nth-of-type(2)").after(li1);
  34. let li = document.querySelector("ul > li:nth-of-type(2)");
  35. // replaceChild(ele/pos) 替换子元素,在父级使用
  36. let taga2 = document.createElement("a");
  37. taga2.href = "xxx";
  38. taga2.append("我来替换");
  39. let ul = document.querySelector("ul > li:nth-of-type(2)");
  40. document.querySelector("ul").replaceChild(taga2, ul);
  41. // remove(ele) 删除节点
  42. document.querySelector("body > ul > li:last-of-type").remove();

  1. let ul = document.createElement("ul");
  2. document.querySelector("hr:last-of-type").after(ul);
  3. function print(node) {
  4. if (event.key === "Enter") {
  5. if (node.value.length === 0) {
  6. alert("请输入留言");
  7. } else {
  8. let value =
  9. "<li>" +
  10. node.value +
  11. "<button onclick='del(this)'>删除</button> </li> ";
  12. document
  13. .querySelector("ul")
  14. .insertAdjacentHTML("afterBegin", value);
  15. node.value = null;
  16. }
  17. }
  18. }
  19. function del(n) {
  20. confirm("确定删除?") ? n.parentNode.remove() : alert("已取消");
  21. }

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