Blogger Information
Blog 29
fans 1
comment 0
visits 23091
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JavaScript获取DOM元素,变量节点元素
阿心
Original
1186 people have browsed it

获取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>

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

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:js的知识体系过于庞大了, 分支也多, 所以完全掌握不容易, 还好常用的并不多 , 你保都要好好的关注web开发领域就可以了
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