• 拥有DOM力量的你究竟可以干什么


    如果你希望访问 HTML 页面中的任何元素,那么您总是从访问 document 对象开始!

    查找HTML元素

    document.getElementById(id)                                通过元素 id 来查找元素
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <div id="myDiv">Hello, world!div>
    9. <script>
    10. var myDiv = document.getElementById("myDiv");
    11. console.log(myDiv); // 输出
      Hello, world!
    12. script>
    13. body>
    14. html>
    document.getElementsByTagName(name)          通过标签名来查找元素

    这个方法接收一个参数 name,该参数是一个字符串,表示你想要选择的元素的标签名称

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <p>一段话p>
    9. <p>一段话1p>
    10. <p>一段话2p>
    11. <script>
    12. var p = document.getElementsByTagName("p");
    13. console.log(p);
    14. console.log(p[1]);
    15. script>
    16. body>
    17. html>

    返回的 NodeList 对象是一个“类数组”,可以像数组一样使用。你可以通过索引访问特定的元素,例如,document.getElementsByTagName("p")[0] 将返回第一个 

     元素

    需要注意的是,NodeList 是“静态的”,也就是说,它并不会反映后续对文档的修改。如果在后续对文档进行了修改(例如,添加或删除了元素),那么你需要再次调用 getElementsByTagName 来获取最新的元素(查找HTML元素的方法的性质都类似,类比即可!)

    document.getElementsByClassName(name)通过类名来查找元素
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <button class="btn">我是按钮button>
    9. <script>
    10. var btn = document.getElementsByClassName("btn");
    11. console.log(btn);
    12. script>
    13. body>
    14. html>
    document.querySelector(CSS选择器)                                        通过CSS选择器选择一个元素
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <button class="btn">我是按钮button>
    9. <script>
    10. var btn = document.querySelector(".btn");
    11. console.log(btn);
    12. script>
    13. body>
    14. html>
    document.querySelectorAll(CSS选择器)                                    通过CSS选择器选择多个元素
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <ul class="list">
    9. <li>列表项1li>
    10. <li>列表项2li>
    11. <li>列表项3li>
    12. <li>列表项4li>
    13. ul>
    14. <script>
    15. var list = document.querySelectorAll(".list li");
    16. console.log(list);
    17. script>
    18. body>
    19. html>

    获取HTML元素的值

    元素节点.innerText获取 HTML元素的 inner Text
    元素节点.innerHTIML获取 HTML元素的 inner HTML
    元素节点.属性获取 HTIML 元素的属性值
    元素节点getAttribute(attribute)获取 HTIML 元素的属性值
    元素节点style.样式获取 HTML 元素的行内样式值
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <a ID="a" href="https://www.csdn.net/">CSDNa>
    9. <script>
    10. var a = document.getElementById("a");
    11. console.log(a.innerText);
    12. script>
    13. body>
    14. html>

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <div id="box">
    9. <h1>我是Box中的大标题h1>
    10. div>
    11. <script>
    12. var box = document.getElementById("box");
    13. console.log(box.innerHTML);
    14. script>
    15. body>
    16. html>
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <a ID="a" href="https://www.csdn.net/">CSDNa>
    9. <script>
    10. var a = document.getElementById("a");
    11. console.log(a.href);
    12. console.log(a.getAttribute("href");
    13. console.log(a.getAttribute(""));
    14. script>
    15. body>
    16. html>

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <div style="width: 100px;height: 100px;background: red;" id="box">div>
    9. <script>
    10. var box = document.getElementById("box");
    11. console.log(box.style.width);
    12. script>
    13. body>
    14. html>

    小知识:

    如果CSS的样式名中含有-,这种名称在JS中是不合法的比如background-color,需要将这种样式名修改为驼峰命名法,去掉-,然后将 - 后的字母大写,我们通过style属性设置的样式都是行内样式,同样的获取也是行内样式,而行内样式有较高的优先级,所以通过JS修改的样式往往会立即显示,但是如果在样式中写了!important,则此时样式会有最高的优先级,即使通过JS也不能覆盖该样式,此时将会导致JS修改样式失效,所以尽量不要为样式添加!important

    改变HTML的值

    元素节点.innerText = new text content改变元素的 inner Text
    元素节点.innerHTML = new html content改变元素的 inner HTML
    元素节点.属性 = new value改变 HTML 元素的属性值
    元素节点.setAttribute(attributevalue)改变 HTML 元素的属性值
    元素节点.style.样式 = new style改变 HTML 元素的行内样式值
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <button id="btn">我是按钮button>
    9. <script>
    10. var btn = document.getElementById("btn");
    11. btn.innerText = "我是JavaScript的按钮";
    12. console.log(btn);
    13. script>
    14. body>
    15. html>
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <div id="box">div>
    9. <script>
    10. var box = document.getElementById("box");
    11. box.innerHTML = "

      我是Box中的大标题

      "
      ;
    12. console.log(box);
    13. script>
    14. body>
    15. html>
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <a id="a" href="">打开百度,你就知道!a>
    9. <script>
    10. var a = document.getElementById("a");
    11. a.href="https://www.baidu.com";
    12. console.log(a);
    13. script>
    14. body>
    15. html>
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <div style="width: 100px;height: 100px;background: red;" id="box">div>
    9. <script>
    10. var box = document.getElementById("box");
    11. box.style.background = "green";
    12. console.log(box);
    13. script>
    14. body>
    15. html>
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <div style="width: 100px;height: 100px;background: red;" id="box">div>
    9. <script>
    10. var box = document.getElementById("box");
    11. box.style.background = "green";
    12. console.log(box);
    13. script>
    14. body>
    15. html>

    添加HTML元素 

    document.createElement(element)创建 HTML 元素节点
    document.createAttribute(attribute)创建 HTML 属性节点
    document.createTextNode(text)创建 HTML 文本节点
    元素节点.removeChild(element)删除 HTML 元素
    元素节点.appendChild(element)添加 HTML 元素
    元素节点.replaceChild(element)替换 HTML 元素
    元素节点.insertBefore(element)在指定的子节点前面插入新的子节点

    创建不代表是添加到网页上了!!!

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <script>
    9. var a = document.createElement("a");
    10. a.href = "https://www.csdn.net"; // 设置链接地址
    11. var text = document.createTextNode("CSDN");
    12. a.appendChild(text); // 将链接文本添加到链接元素中
    13. document.getElementsByTagName("body")[0].appendChild(a);
    14. var ul = document.createElement("ul");
    15. var li1 = document.createElement("li");
    16. var text1 = document.createTextNode("列表项1");
    17. li1.appendChild(text1);
    18. ul.appendChild(li1);
    19. var li2 = document.createElement("li");
    20. var text2 = document.createTextNode("列表项2");
    21. li2.appendChild(text2);
    22. ul.appendChild(li2);
    23. var li3 = document.createElement("li");
    24. var text3 = document.createTextNode("列表项3");
    25. li3.appendChild(text3);
    26. ul.appendChild(li3);
    27. var li4 = document.createElement("li");
    28. var text4 = document.createTextNode("列表项4");
    29. li4.appendChild(text4);
    30. ul.appendChild(li4);
    31. var li5 = document.createElement("li");
    32. var text5 = document.createTextNode("列表项5");
    33. li5.appendChild(text5);
    34. ul.appendChild(li5);
    35. document.getElementsByTagName("body")[0].appendChild(ul);
    36. script>
    37. body>
    38. html>

    创建一个ul列表,里边有四个li子元素,删除第一个li,替换最后一个li

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <ul id="ul">
    9. <li id="first">列表项1li>
    10. <li>列表项2li>
    11. <li>列表项3li>
    12. <li id="last">列表项4li>
    13. ul>
    14. <script>
    15. var ul = document.getElementById("ul");
    16. var first = document.getElementById("first");
    17. var last = document.getElementById("last");
    18. /*删除第一个*/
    19. ul.removeChild(first);
    20. /*替换最后一个*/
    21. var replaceLi = document.createElement("li");
    22. replaceLi.innerHTML = "列表4的替换";
    23. ul.replaceChild(replaceLi, last);
    24. script>
    25. body>
    26. html>

    查找HTML父子元素节点

    元素节点.parentNode返回元素的父节点
    元素节点.parentElement返回元素的父元素
    元素节点.childNodes返回元素的一个子节点的数组(包含空白文本Text节点)
    元素节点.children返回元素的一个子元素的集合(不包含空白文本Text节点)
    元素节点.firstChild返回元素的第一个子节点(包含空白文本Text节点)
    元素节点.firstElementChild返回元素的第一个子元素(不包含空白文本Text节点)
    元素节点.lastChild返回元素的最后一个子节点(包含空白文本Text节点)
    元素节点.lastElementChild返回元素的最后一个子元素(不包含空白文本Text节点)
    元素节点.previousSibling返回某个元素紧接之前节点(包含空白文本Text节点)
    元素节点.previousElementSibling返回指定元素的前一个兄弟元素(相同节点树层中的前一个元素节点)
    元素节点.nextSibling返回某个元素紧接之后节点(包含空白文本Text节点)
    元素节点.nextElementSibling返回指定元素的后一个兄弟元素(相同节点树层中的下一个元素节点)
  • 相关阅读:
    【JavaScript】Generator函数
    一文带大家,彻底了解【NAT技术-网络地址转换】
    Python获取Window系统注册表安装的软件,再卸载软件
    使用 shell 脚本拼接 srt 字幕文件 (srtcat)
    18-1、k8s 对外服务之ingress
    【翻译】Seastar 教程(一)
    CISSP学习笔记:管理安全运营
    CentOS 7.2 配置mysql5.7
    Doris写入数据异常提示actual column number in csv file is less than schema column number
    golang有序map
  • 原文地址:https://blog.csdn.net/m0_62407354/article/details/134088490