Blogger Information
Blog 56
fans 1
comment 0
visits 62706
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
获取页面元素的5种方式
零龙
Original
3501 people have browsed it

获取页面元素的5种方式

  • 文档节点 : document
  • 节点类型 :document.nodeType
  • 节点名称 :document.nodeName
  • 节点的值 :document.nodeValue
  • 文档类型 :document.doctype
  • 更节点 :document.documentElement
  • 头元素 :document.head
  • 标题 :document.title
  • 主体 :document.body
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>dom对象</title>
  7. </head>
  8. <body>
  9. <H3>hello php.cn</H3>
  10. <p>大家晚上好</p>
  11. <script>
  12. // 1.节点是dom中的最小单元
  13. // 2.节点:元素<h3>,文本节点<h3>中的文本,注释节点,片段节点<p>,文档节点documenet
  14. /
  15. console.log(document);
  16. //节点类型
  17. console.log(document.nodeType); //9
  18. //节点名称
  19. console.log(document.nodeName); //#document
  20. //节点的值
  21. console.log(document.nodeValue); //null
  22. //查看文档类型
  23. console.log(document.doctype); // <!DOCTYPE html>
  24. //根节点<html>
  25. console.log(document.documentElement); //html源码
  26. //头元素
  27. console.log(document.head); //获取head
  28. //标题
  29. console.log(document.title); //获取title
  30. //主体
  31. console.log(document.body); //获取body
  32. </script>
  33. </body>
  34. </html>

示例图:


  • 返回的是一个元素对象的集合 :document.getElementsByTagName
  • 返回具有指定id的第一个元素(唯一) :document.getElementById
  • 指定的id或name元素 :namedItem()
  • 获取class指定类名的元素集合 :document.getElementsByClassName
  • 获取满足条件集合中的第一个元素(类似于id) :document.querySelector
  • 获取满足条件的全部元素组成的集合: querySelectorAll
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>如何获取页面元素</title>
  7. </head>
  8. <body>
  9. <div id="list">
  10. <ul class="poster">
  11. <li name = "active">世界亚洲中国</li>
  12. <li>您是地球人</li>
  13. <li>我是中国人</li>
  14. </ul>
  15. </div>
  16. <script>
  17. //1.标签:返回的是一个元素对象的集合
  18. var ul = document.getElementsByTagName("ul");
  19. //getElementsByTagName 获取元素
  20. console.log(ul);
  21. // console.log(ul[0]);
  22. // console.log(ul.item(0));
  23. //2.id:只返回具有指定id的第一个元素(唯一)
  24. var list = document.getElementById("list");
  25. //getElementById 获取ID
  26. // console.log(list);
  27. var div =document.getElementsByTagName("div");
  28. console.log(div.namedItem("list")===list);
  29. //namedItem() 指定的id或name元素
  30. var lis = document.getElementsByTagName("li");
  31. console.log(lis);
  32. console.log(lis.namedItem("active"));
  33. var active = document.getElementsByTagName("li").namedItem("active");
  34. active.style.color ="red";
  35. // 在元素级别调用以上的api方法来获取元素
  36. var lis = ul.item(0).getElementsByTagName("li");
  37. var active=lis.namedItem("active");
  38. console.log(active);
  39. //3.class 返回一个html集合
  40. //获取class指定类名的元素集合
  41. var poster = document.getElementsByClassName("poster");
  42. console.log(poster);
  43. poster.item(0).style.border = "1px solid";
  44. //4.querySelector(css选择器):获取满足条件集合中的第一个元素(类似于id)
  45. // querySelectorAll(css选择器):获取满足条件的全部元素组成的集合
  46. var div = document.querySelector("#list");
  47. //获取div,需要加标识符#
  48. var li = document.querySelector("#list li");
  49. var li = document.querySelector("#list li:nth-of-type(2)");
  50. var li = document.querySelector("#list li:last-of-type");
  51. //获取多个注意:.poster>*
  52. var lis = document.querySelectorAll(".poster > *");
  53. console.log(lis);
  54. </script>
  55. </body>
  56. </html>


  • 获取元素的子节点集合 : childNodes
  • 文本节点 : nodeType = 3 : nodeType = 1 :元素节点
  • 子节点集合 :childNodes 格式:节点.childNodes.item
  • 元素的子元素集合 : children
  • 节点的第一节点 : firstChild
  • 元素的第一个子元素 : firstElementChild
  • 元素的最后一个子元素 : lastElementChild
  • 元素集合的第一个元素 :
  • 元素父节点 : parentNode
  • 当前元素父节点: parentElement
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>node,nodelist</title>
  7. </head>
  8. <body>
  9. <div id="box">
  10. <h2>Javascript</h2>
  11. <p>通用前端脚本语言</p>
  12. <li>学习让我感到很充实</li>
  13. </div>
  14. <p><a href="https://www.php.cn">PHP中文网</a></p>
  15. <script>
  16. var div = document.querySelector("div");
  17. console.log(div.childNodes); //获取元素的子节点集合
  18. // nodeType = 3 :文本节点:返回节点的节点类型
  19. console.log(div.childNodes.item(0).nodeType);
  20. // nodeType = 1 :元素节点
  21. console.log(div.childNodes.item(1).nodeType);
  22. //过滤掉节点集合中的非元素节点
  23. for(var i = 0; i < div.childNodes.length; i++)
  24. {
  25. var currentNode = div.childNodes.item(i);
  26. if (currentNode.nodeType == 1)
  27. {
  28. console.log(currentNode.tagName.toLowerCase());
  29. }
  30. }
  31. console.log(div.children); //元素的子元素集合
  32. console.log(div.firstChild); //文档节点的第一节点
  33. console.log(div.firstElementChild); //返回指定元素的第一个子元素
  34. console.log(div.lastElementChild); //返回指定元素的最后一个子元素
  35. console.log(div.children.item(0)); //子元素集合的第一个元素
  36. var li =document.querySelector('li');
  37. console.log(li.parentNode); //元素父节点
  38. //充当父节点永远不可能是文本或属性,只能是元素或文档
  39. console.log(li.parentElement); //回的是当前元素父节点
  40. console.log(li.parentElement === li.parentNode)
  41. </script>
  42. </body>
  43. </html>


  • 创建元素 : createElement
  • 创建文件碎片节点 : document.createDocumentFragment
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>元素的动态添加与删除</title>
  7. </head>
  8. <body>
  9. <ul></ul>
  10. <script>
  11. var h2 = document.createElement('h2');
  12. //createElement 创建元素
  13. h2.innerText = '大家辛苦了';
  14. h2.style.color = 'red';
  15. h2.innerHTML = '大家<span style="color:green">辛苦了</span>';
  16. document.body.appendChild(h2);
  17. //向节点的子节点列表的末尾添加新的子节点。
  18. var ul =document.querySelector('ul');
  19. //为防止每添加一个元素导致页面DOM树重新渲染一次
  20. //借助文档片断来解决这个问题
  21. //先创建一个临时文档片断
  22. //将生成的10个li添加到内存中的这个文档片断节点中
  23. //将这个文档片断一次性添加到页面,此时页面只会渲染一次
  24. var frag = document.createDocumentFragment();
  25. for(var i = 0; i< 10; i++)
  26. {
  27. var li =document.createElement('li');
  28. li.innerText = '列表项'+(i + 1);
  29. frag.appendChild(li);
  30. }
  31. ul.appendChild(frag);
  32. </script>
  33. </body>
  34. </html>


  • 添加绑定事件 :addEventListener
  • 取消事件的默认动作:preventDefault
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>事件基础</title>
  7. </head>
  8. <body>
  9. <button onclick="alert(this.firstChild.nodeValue);">点击我</button>
  10. <button>点我试试</button>
  11. <a href="http://www.php.com/0814/demo.html">我是超链接</a>
  12. </body>
  13. <script>
  14. //获取第二个按钮
  15. var but = document.querySelector('button:nth-of-type(2)');
  16. but.addEventListener('click',function(ev){
  17. //添加绑定绑定事件
  18. var h2 = document.createElement("h2");
  19. h2.style = "width:100px;height:50px;background:green;";
  20. but.style = "color:red;width:100px;height:50px;";
  21. },false);
  22. but.addEventListener('mouseout',function(ev){
  23. var h2 = document.createElement("h2");
  24. h2.style = 'none';
  25. document.body.appendChild(h2);
  26. },false);
  27. var link = document.links.item(0);
  28. link.onclick = function(ev)
  29. {
  30. ev.preventDefault();
  31. but.style = 'none';
  32. };
  33. </script>
  34. </html>

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:其实任何一种都可以获取到元素, 肯定是选择最简单的方式
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post