博客列表 >获取页面元素的5种方式

获取页面元素的5种方式

零龙
零龙原创
2020年08月20日 01:36:093496浏览

获取页面元素的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>

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