博客列表 >JavaScript获取DOM元素,变量节点元素

JavaScript获取DOM元素,变量节点元素

阿心
阿心原创
2020年05月28日 19:41:401189浏览

获取DOM元素

  1. <ul id="list">
  2. <li class="item">item1</li>
  3. <li class="item" name="two">item2</li>
  4. <li class="item active">item3</li>
  5. <li class="item">item4</li>
  6. <li class="item">item5</li>
  7. </ul>
  8. <script>
  9. // const定义的变量不可以修改,而且必须初始化。
  10. const cl = console.log.bind(console);
  11. //1,标签
  12. // li 标签 获取多个标签使用 get Elements By Tag Name 按标记名获取元素
  13. var lis = document.getElementsByTagName('li');
  14. cl(lis);
  15. cl("以上获取所有li");
  16. // HTMLCollection:类数组
  17. // 可以通过方法获取需要的值:lis[键]或lis.item(键)
  18. cl(lis.item(2));
  19. cl("以上获取其中li");
  20. //Ul标签获取
  21. var ul = document.getElementsByTagName('ul');
  22. cl(ul);
  23. cl("以上获取所有ul");
  24. //2,ID(id是唯一的,不能用复数)
  25. //获取单个标签使用getElementById
  26. var ul = document.getElementById("list");
  27. // ul.style.cssText="color:red;list-type:none;border:1px solid;";
  28. cl(ul);
  29. cl("以上获取ID为**的UL");
  30. //3,class
  31. //获取函数:getElementByClassName
  32. var lis = document.getElementsByClassName("item");
  33. cl(lis);
  34. cl("以上通过class获取到li");
  35. //获取某个li使用上方法
  36. // cl(lis.item(3));
  37. var lis = document.getElementsByClassName("item active");
  38. // document.querySelector(".item").style.color="red";
  39. cl(lis.item(2));
  40. cl("获取active");
  41. //4,name
  42. var two = document.getElementsByName('two');
  43. cl(two);
  44. cl(two[0]);
  45. //5,css选择器
  46. cl(document.querySelector("#list"));
  47. var item = document.querySelectorAll(".item");
  48. cl(item);
  49. cl("获取css选择器");
  50. //6,获取
  51. var lis = document.querySelectorAll("#ul > li:nth-of-type(-n+3)");
  52. lis.forEach(function(item){
  53. item.style.color="yellow";
  54. });
  55. cl("获取某个或多个");
  56. </script>

遍历元素节点

  1. <script>
  2. var cl = console.log.bind(console);
  3. ul = document.querySelector('ul');
  4. //获取所有(childNodes)子节点
  5. cl(ul.childNodes);
  6. //js 常用6个节点。
  7. // 1,元素
  8. // 2,属性
  9. // 3,文本
  10. // 6,注释
  11. // 9,文档
  12. // 11,文档片段
  13. //nodeType(节点类型)nodeValue(节点值)nodeName(节点名称)
  14. cl((ul.childNodes[0].nodeType) + "----节点0位置的类型和值----" + (ul.childNodes[0].nodeValue));
  15. cl((ul.childNodes[1].nodeType) + "----节点1位置的类型和值----" + (ul.childNodes[1].nodeValue));
  16. cl((ul.childNodes[3].nodeType) + "----节点3位置的类型和名称----" + (ul.childNodes[3].nodeName));
  17. // 获取最后一个节点
  18. cl(ul.childNodes[ul.childNodes.length-1]);
  19. cl("----------遍历li---------");
  20. var ele = [];
  21. ul.childNodes.forEach(function(item){
  22. // push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度
  23. //意思就是在this->ele[]数组里面添加获取到的li元素
  24. if(item.nodeType === 1) this.push(item);
  25. },ele);
  26. cl(ele);
  27. //获取第一个子(firstChild)或最后一个子(lastChild)
  28. cl(ul.firstChild);
  29. cl(ul.lastChild);
  30. //获取前一个兄弟(previousSibling)或后一个兄弟(nextSibling)
  31. cl((ul.lastChild.previousSibling) + "---前后兄弟子节点----" + (ul.firstChild.nextSibling));//节点拼接显示的是类型元素
  32. cl(ul.firstChild.nextSibling);
  33. cl(ul.lastChild.previousSibling);
  34. </script>

遍历元素节点

  1. <script>
  2. var cl=console.log.bind(console);
  3. var ul = document.querySelector("ul");
  4. //children和childNodes区别
  5. //1,childNodes获取所有节点
  6. //2,children获取html类型节点
  7. //获取元素数量方法有二
  8. cl(ul.children.length);
  9. //子元素计数(childElementCount)
  10. cl(ul.childElementCount);
  11. //获取第一个元素子元素(firstElementChild)获取最后一个元素子元素(lastElementChild)获取某个子元素children[索引]
  12. cl(ul.firstElementChild);
  13. //获取前一个/后一个请使用索引(nextElementSibling)/(previousElementSibling)
  14. cl(ul.children[2].previousElementSibling);
  15. // HTMLCollention元素节点 没有foEach方法
  16. cl("---for遍历li元素---")
  17. for(var i = 0; i < ul.childElementCount;i++){
  18. cl(ul.children.item(i))
  19. }
  20. </script>

dataset用户自定义数据

  1. <div id="user" data-id="100" data-user-name="admin" data-src="http://baidu.com"></div>
  2. <script>
  3. var cl = console.log.bind(console);
  4. var user = document.querySelector("#user")
  5. //dataset是用来专门访问data-的属性。
  6. cl(user.dataset.id)
  7. //js规则:多单词连接线去掉,将首字母大写
  8. cl(user.dataset.userName)
  9. // 更改数据
  10. user.dataset.userName = "super";
  11. cl(user.dataset.userName)
  12. </script>

body背景颜色切换小功能。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>classlist对象</title>
  6. <style>
  7. body{
  8. background:blue;
  9. }
  10. .p1{
  11. color:pink;
  12. font-size:28px;
  13. }
  14. .p2{
  15. background:#CCC;
  16. }
  17. .p3{
  18. font-weight:bold;
  19. text-align:center;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <p>首页背景颜色切换</p>
  25. <div>
  26. <span></span>
  27. <span></span>
  28. <span></span>
  29. </div>
  30. <script>
  31. var cl = console.log.bind(console);
  32. var p = document.querySelector("p");
  33. //获取class属性。在js中是保留字,所以用className
  34. // cl(p)
  35. //添加一个class类属性样式
  36. p.classList.add("p2")
  37. //删除
  38. // p.classList.remove("p2");
  39. //自动切换
  40. p.classList.toggle("p2");
  41. p.classList.toggle("p3")
  42. //替换(需要替换的属性,替换的属性)
  43. p.classList.replace("p3", "p2");
  44. var div = document.querySelector("div");
  45. document.querySelector("div").style.cssText = "border:1px solid;width:120px;height:35px;"
  46. // document.querySelectorAll("span").style.cssText = "border:1px solid ;padding:5px;width:30px;height:30px;"
  47. div.children[0].style.cssText = "border:1px solid ;width:30px;height:30px;display:flex;float:left;background:red"
  48. div.children[1].style.cssText = "border:1px solid ;width:30px;height:30px;display:flex;float:left;margin:0 5px 0 5px;background:blue"
  49. div.children[2].style.cssText = "border:1px solid ;width:30px;height:30px;display:flex;floay:left;background:yellow"
  50. //添加点击事件并改变属性样式
  51. div.children[0].addEventListener("click",bgspan1,false)
  52. function bgspan1(ev){
  53. document.body.style.background = "red";
  54. }
  55. div.children[1].addEventListener("click",bgspan2,false)
  56. function bgspan2(ev){
  57. document.body.style.background="blue"
  58. }
  59. div.children[2].addEventListener("click",bgspan3,false)
  60. function bgspan3(ev){
  61. document.body.style.background = "yellow"
  62. }
  63. </script>
  64. </body>
  65. </html>

总结:确实有点难,每抄一步,都想要去知道为什么要这样写,是固定写法还是有不一样的方法。

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