博客列表 >Javascript的Dom增删改方法、留言板添加自定义样式

Javascript的Dom增删改方法、留言板添加自定义样式

P粉932932019
P粉932932019原创
2022年07月30日 15:18:34495浏览

一、DOM增、删、改

1、增加

  • append(ele/string):既可增加元素,也可增加内容

    1. // 创建元素:只是创建,并未显示,追加之前先创建
    2. const ul = document.createElement("ul");
    3. // 追加元素ul:在父级层追加
    4. document.body.append(ul);
    5. // 批量追加元素li:首先要创建元素,然后再追加元素
    6. for (let i = 0; i < 8; i++) {
    7. const li = document.createElement("li");
    8. ul.append(li);
    9. li.append("item-" + (i + 1));
    10. }
  • before(ele/string)
    1. //创建元素
    2. const li_before = document.createElement("li");
    3. //追加元素文本
    4. li_before.append("before 5 item");
    5. //定位到某个元素之前
    6. const item = ul.querySelector("li:nth-of-type(5)");
    7. //追加元素使用before,具有append的功能,不是直接用append
    8. item.before(li_before);
  • after(ele/string)

    1. // 在某元素节点之后追加元素,方法一:使用after
    2. const li_after = document.createElement("li");
    3. li_after.append("after 1 item");
    4. const item2 = ul.querySelector("li:first-of-type");
    5. item2.after(li_after);
    1. // 在某元素节点之后追加元素,方法二:使用cloneNode + after
    2. const newNode = li_before.cloneNode(true);
    3. item2.after(newNode);

  • insertAdjacentElement(位置,元素)
    4种位置类型:
    beforebegin:在开始标签之前,是他的上一个兄弟元素
    afterbegin:在开始标签之后,是他的第一个子元素
    beforeend:在结束标签之前,是他的最后一个子元素
    afterend:在结束标签之后,是他的下一个兄弟元素

    1. // 使用 insertAdjacentElement()增加元素
    2. let h2 = document.createElement("h2");
    3. h2.append("H2标题");
    4. ul.insertAdjacentElement("beforebegin", h2);
    5. // 使用insertAdjacentHTML()快速增加元素、内容、样式
    6. ul.insertAdjacentHTML(
    7. "afterbegin",
    8. '<li style="color:red">insertAdjacentHTML</li>'
    9. );
    10. ul.insertAdjacentHTML("afterend", "<h3>累计数量:12个");

2、修改

replacechild(新节点,被替换的节点/旧节点)

  1. // replacechild()
  2. let item9 = document.createElement("a");
  3. item9.href = "www.baidu.com";
  4. item9.append("百度链接");
  5. let item8 = ul.querySelector("li:last-of-type");
  6. ul.replaceChild(item9, item8);

3、删除/移除

remove()

  1. //remove()
  2. ul.firstElementChild.remove();
  3. ul.lastElementChild.remove();
  4. ul.querySelector("li:nth-of-type(2)").remove();
  5. ul.querySelector("li:nth-of-type(2)").remove();
  6. ul.querySelector("li:nth-of-type(5)").remove();

二、留言板自定义样式

  1. //html代码
  2. <input type="tel" onkeydown="show(this)" placeholder="type..." autofocus />
  3. //JS代码
  4. function show(ele) {
  5. // console.log(event.type); //事件类型 keydown
  6. // console.log(event.key); //事件值
  7. // console.log(event); //事件 keyboard
  8. // 判断是否按下了回车键
  9. if (event.key === "Enter") {
  10. // 内部判断,输入的值是否为空
  11. if (ele.value.length === 0) {
  12. alert("Please type...");
  13. ele.focus();
  14. return false;
  15. }
  16. // 以下是创建元素、追加元素
  17. let div = document.createElement("div");
  18. let content = ele.value;
  19. div.append(content);
  20. document.body.after(div);
  21. ele.value = null;
  22. }
  23. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议