DOM是文档对象模型,把文档中的标签、属性、文本转换成为文档对象来管理。

document对象

image.png
image.png
image.png

Document对象中的方法介绍

image.png
image.png

getElementById方法的应用

需求:当用户输入用户名后点击校验按钮,需要获取用户输入的内容,判断是否只由下划线、美元符号、数字、字母组成。

  1. <script type="text/javascript">
  2. // 当用户输入用户名后点击校验按钮,需要获取用户输入的内容,
  3. // 判断是否只由下划线、美元符号、数字、字母组成,并且长度为5到12位。
  4. function onclickFun()
  5. {
  6. //第一步:需要获取文本框中的内容,因此需要获取这个标签的对象
  7. var usernameObj = document.getElementById("username");//这个就是DOM对象,因此也带有属性信息
  8. // alert(usernameObj.id);
  9. // alert(usernameObj.type);
  10. var usemaneText = usernameObj.value;//通过DOM对象,获得了文本框内容
  11. //下一步是验证字符串符合某个规则,这时需要使用正则表达式技术
  12. var patt = /^\w{5,12}$/;
  13. if(patt.test(usemaneText))
  14. {
  15. alert("用户名合法");
  16. }
  17. else
  18. {
  19. alert("用户名不合法");
  20. }
  21. }
  22. </script>
  23. </head>
  24. <body>
  25. 用户名:<input type="text" id="username" value="tan"/>
  26. <button onclick="onclickFun()">校验</button>
  27. </body>

image.pngimage.pngimage.png
优化1:

  1. <script type="text/javascript">
  2. // 当用户输入用户名后点击校验按钮,需要获取用户输入的内容,
  3. // 判断是否只由下划线、美元符号、数字、字母组成,并且长度为5到12位。
  4. function onclickFun()
  5. {
  6. //第一步:需要获取文本框中的内容,因此需要获取这个标签的对象
  7. var usernameObj = document.getElementById("username");//这个就是DOM对象,因此也带有属性信息
  8. // alert(usernameObj.id);
  9. // alert(usernameObj.type);
  10. var usernameText = usernameObj.value;//通过DOM对象,获得了文本框内容
  11. var usernameSpanObj = document.getElementById("usernamespan");
  12. //下一步是验证字符串符合某个规则,这时需要使用正则表达式技术
  13. var patt = /^\w{5,12}$/;
  14. if(patt.test(usernameText))
  15. {
  16. usernameSpanObj.innerHTML="用户名合法";
  17. }
  18. else
  19. {
  20. usernameSpanObj.innerHTML="用户名不合法";
  21. }
  22. }
  23. </script>
  24. <body>
  25. 用户名:<input type="text" id="username" value=""/>
  26. <span style="color: #6495ed" id = "usernamespan"> </span>
  27. <button onclick="onclickFun()">校验</button>
  28. </body>

效果:
image.png
image.png

正则表达式

image.png
image.png
image.png
image.png
image.png

  1. <script type="text/javascript">
  2. //定义格式:
  3. var pattern = new RegExp("");
  4. var pattern = / /;
  5. //第一种:表示判断是否包含某个字母
  6. var patt0 = new RegExp("e");
  7. var patt0 = /e/;
  8. //第二种:表示判断是否包含方括号中的任意字符
  9. var patt1 = /[abc]/;
  10. //第三种:表示判断是否不包含方括号中的任意字符
  11. var patt2 = /[^abc]/;
  12. //第四种:表示判断是否包含小写字母
  13. var patt3 = /[a-z]/;
  14. //第五种:表示判断大写
  15. var patt4 = /[A-Z]/;
  16. //第六种:表示判断是否包含任意数字
  17. var patt5 = /[0-9]/;
  18. //第七种:表示要求包含数字、字母、下划线
  19. var patt6 = /\w/;
  20. </script>

getElementsByName方法应用

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>getElementsByName</title>
  6. <!-- //第一步,为每个按钮绑定点击事件-->
  7. <script type="text/javascript">
  8. function checkAll()
  9. {
  10. var languageObj = document.getElementsByName("language");
  11. for (var i=0;i<languageObj.length;i++)
  12. {
  13. languageObj[i].checked=true;
  14. }
  15. }
  16. function checkNone()
  17. {
  18. var languageObj = document.getElementsByName("language");
  19. for (var i=0;i<languageObj.length;i++)
  20. {
  21. languageObj[i].checked=false;
  22. }
  23. }
  24. function checkReverse()
  25. {
  26. var languageObj =document.getElementsByName("language");
  27. for (var i=0;i<languageObj.length;i++)
  28. {
  29. if(languageObj[i].checked)
  30. {
  31. languageObj[i].checked=false;
  32. }
  33. else
  34. {
  35. languageObj[i].checked=true;
  36. }
  37. }
  38. }
  39. </script>
  40. </head>
  41. <body>
  42. 勾上你掌握的语言:
  43. <input type="checkbox" name="language" value="java" >Java
  44. <input type="checkbox" name="language" value="cpp" >C++
  45. <input type="checkbox" name="language" value="js">JavaScript
  46. <br/>
  47. <button onclick="checkAll()">全选</button>
  48. <button onclick="checkNone()">全不选</button>
  49. <button onclick="checkReverse()">反选</button>
  50. <br/>
  51. </body>
  52. </html>

当点击全选按钮时:
image.png
当点击全不选按钮时:
image.png
当点击反选按钮时:
image.png
image.png

getElementsByTagName方法应用

  1. <script type="text/javascript">
  2. function checkAll()
  3. {
  4. var inputObj = document.getElementsByTagName("input");
  5. for (var i=0;i<inputObj.length;i++)
  6. {
  7. inputObj[i].checked=true;
  8. }
  9. }
  10. function checkNone()
  11. {
  12. var inputObj = document.getElementsByTagName("input");
  13. for (var i=0;i<inputObj.length;i++)
  14. {
  15. inputObj[i].checked=false;
  16. }
  17. }
  18. function checkReverse()
  19. {
  20. var inputObj = document.getElementsByTagName("input");
  21. for (var i=0;i<inputObj.length;i++)
  22. {
  23. if(inputObj[i].checked)
  24. {
  25. inputObj[i].checked=false;
  26. }
  27. else
  28. {
  29. inputObj[i].checked=true;
  30. }
  31. }
  32. }
  33. </script>
  34. <body>
  35. 勾上你掌握的语言:
  36. <input type="checkbox" value="java" >Java
  37. <input type="checkbox" value="cpp" >C++
  38. <input type="checkbox" value="js">JavaScript
  39. <br/>
  40. <button onclick="checkAll()">全选</button>
  41. <button onclick="checkNone()">全不选</button>
  42. <button onclick="checkReverse()">反选</button>
  43. <br/>
  44. </body>

与上一个方法效果一样。

补充createElement方法和appendChlid方法

  1. <script type="text/javascript">
  2. window.onload = function ()
  3. {
  4. //createElement方法用于创建标签,并显示在页面上
  5. var ElementObj = document.createElement("div");
  6. ElementObj.innerHTML="你好哇,黑颖虾";//等同于<div>你好哇,batman</div>,但还在内存中
  7. //第二步要把这个标签放在body标签中,等同于添加body标签的子标签
  8. document.body.appendChild(ElementObj);
  9. }
  10. </script>

image.png
也可以写成:

  1. <script type="text/javascript">
  2. window.onload = function ()
  3. {
  4. //createElement方法用于创建标签,并显示在页面上
  5. var ElementObj = document.createElement("div");
  6. // ElementObj.innerHTML="你好哇,黑颖虾";//等同于<div>你好哇,batman</div>,但还在内存中
  7. //第二步要把这个标签放在body标签中,等同于添加body标签的子标签,同时文本标签也是div标签的子节点
  8. var TextNodeObj = document.createTextNode("你好哇,黑颖虾");
  9. ElementObj.appendChild(TextNodeObj);
  10. document.body.appendChild(ElementObj);
  11. }
  12. </script>

效果一样。

节点的常用属性和方法

标签是节点的一种,是我们的重点研究对象

方法

  1. getElementByTagName(){}

获得当前节点的指定标签名的孩子节点

  1. appendChild(oChildNode)

添加一个子节点,oChildNode就是要添加的孩子节点

属性

image.png