博客列表 >获取表单元素,dom树的遍历与常用属性

获取表单元素,dom树的遍历与常用属性

木子木杉
木子木杉原创
2022年01月06日 19:46:31457浏览

获取表单元素

console.log(document.forms[0]);
form.id
console.log(document.forms.login);
input:name
console.log(document.forms.login.email);
value
console.log(document.forms.login.email.value);

DOM遍历

第一个firstElementChild
ul.firstElementChild.style.backgroundColor = "yellow";
下一个nextElementSibling
ul.firstElementChild.nextElementSibling.style.backgroundColor = "green";
前一个previousElementSibling
ul.lastElementChild.previousElementSibling.style.backgroundColor = "lightgreen";
最后一个lastElementChild
ul.lastElementChild.style.backgroundColor = "yellow";
父节点parentElement
ul.lastElementChild.parentElement.style.border = "4px solid";
元素节点parentNode
ul.lastElementChild.parentNode.style.border = "4px solid red";

dom的增删改

增加元素 append

  1. for (let i = 0; i < 5; i++) {
  2. const li = document.createElement("li");
  3. li.textContent = "item" + (i + 1);
  4. ul.append(li);
  5. }

移除 remove
ul.lastElementChild.remove();
替换 replaceChild

  1. const last = document.querySelector("ul li:last-of-type");
  2. const a = document.createElement("a");
  3. a.textContent = "https://php.cn";
  4. ul.replaceChild(a, last);

js操作元素内容常用方法

textContent:返回元素以及后代元素中的所有内容,包括style,display:none的内容
innerText:返回元素以及后代中的文本
innerHTML:返回内部的html中的字符串
outerHTML:返回当前节点的自身的html字符串
textContent首选,innerText,2016年才成为w3c标准
innerHTML可解析html字符,innerText:不解析html 字符

留言板

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>dom实战:留言板</title>
  8. </head>
  9. <body>
  10. <input type="text" onkeydown="addMsg(this)" placeholder="请输入留言内容" autofocus />
  11. <ul class="list"></ul>
  12. <script>
  13. function addMsg(ele) {
  14. console.log(ele);
  15. console.log(event);
  16. console.log(event.key);
  17. if (event.key === "Enter") {
  18. const ul = document.querySelector(".list");
  19. if (ele.value.length === 0) {
  20. alert("留言板内容不为空");
  21. ele.focus();
  22. return false;
  23. }
  24. const li = document.createElement("li");
  25. li.textContent = ele.value;
  26. ul.append(li);
  27. ul.insertAdjacentElement("afterbegin", li);
  28. ul.lastElementChild.style.backgroundColor = "yellow";
  29. ele.value = null;
  30. ele.focus();
  31. }
  32. }
  33. </script>
  34. </body>
  35. </html>

dataset对象

dataset 可读可写

  1. function getIndex(btn) {
  2. console.log("点击了第", btn.dataset.index, "个按钮");
  3. }
  4. const user = document.querySelector(".user");
  5. console.log(user.dataset.email);
  6. console.log(user.dataset.workUnit);
  7. user.dataset.workUnit = "php.cn";
  8. console.log(user.dataset.workUnit);

获取元素的计算样式

getComputedStyle

  1. const div = document.querySelector("div");
  2. console.log(window.getComputedStyle(div).width);
  3. console.log(window.getComputedStyle(div).height);

classlist对象常用方法

1.传统方式

  1. const h2 = document.querySelector("h2");
  2. h2.className = "red bgc";

2.classList add添加

  1. h2.classList.add("red");
  2. h2.classList.add("bgc");

3.contains;判断
console.log(h2.classList.contains("bgc"));
4.remove 移除class
h2.classList.remove("bgc");
5.replace 替换
h2.classList.replace("red", "blue");
6.toggle:切换class
h2.classList.toggle("bd");

事件的添加与派发

1.事件添加

  1. const btn1 = document.querySelector("button:first-of-type");
  2. btn1.onclick = function () {
  3. console.log(event);
  4. };

事件派发

  1. const btn3 = document.querySelector("button:nth-of-type(3)");
  2. let i = 0;
  3. btn3.addEventListener(
  4. "click",
  5. () => {
  6. console.log("恭喜你,又赚了" + i + "元");
  7. i += 0.8;
  8. },
  9. false
  10. );
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议