• ✿✿✿JavaScript --- BOM、DOM对象


    目 

    一、BOM浏览器对象模型

    1.Window窗口对象

    (1)与弹出有关的方法

    (2)与定时器有关的方法

    (3)与打开关闭有关的方法

    (4) 获取其他对象的属性

    2.Location地址栏对象 

    3.History历史记录对象

    二、DOM文档对象模型

    1.Document文档对象

    (1)获取Element对象

    (2)创建其他对象

     2.标签对象的属性

    创建删除DOM元素案例:


    一、BOM浏览器对象模型

    BOM(Browser Object Model) 浏览器对象模型。也就是将浏览器的各个组成部分封装为对象。主要特点就是BOM对象不能由我们程序员自己创建,当文档加载进内存,浏览器自动创建。BOM中常见的对象如下:

    1.Window窗口对象

    使用方式: window.方法名();   或   方法名();( window 可以省略)。 该对象常用到的方法如下:

    (1)与弹出有关的方法

    • alert()                                                 显示带有一段消息和一个确认按钮的警告框。
    • confirm()                                            显示带有一段消息以及确认按钮和取消按钮的对话框。 
    • prompt()                                             显示可提示用户输入的对话框。 

    (2)与定时器有关的方法

    • setInterval()                                        按照指定的周期(以毫秒计)来调用函数或计算表达式。 循环执行
    • clearInterval()                                     取消由 setInterval() 设置的 timeout。  
    • setTimeout()                                       在指定的毫秒数后调用函数或计算表达式。 只执行一次
    • clearTimeout()                                    取消由 setTimeout() 方法设置的 timeout。 

    (3)与打开关闭有关的方法

    • open()                                                 打开新窗口。参数:打开目标的URL。返回值:返回新打开窗口的window引用
    • close()                                                 关闭窗口。注:谁调用我 , 我关谁

    (4) 获取其他对象的属性

    • history                                                 对 History 对象的只读引用。请参数 History 对象。 
    • location                                               用于窗口或框架的 Location 对象。请参阅 Location 对象。 
    • Navigator                                            对 Navigator 对象的只读引用。请参数 Navigator 对象。 
    • Screen                                                对 Screen 对象的只读引用。请参数 Screen 对象。 
    • document                                            对 Document 对象的只读引用。请参阅 Document 对象。 

    2.Location地址栏对象 

    获取方式:可以用window对象中的属性获取。常用的属性 ---->  href:设置或获取当前的URL。

    1. <head>
    2. <meta charset="utf-8">
    3. <title>title>
    4. <script>
    5. function intoPage() {
    6. //window.open()
    7. if (confirm("你即将跳转到外部网站,确认吗?")) {
    8. //window.open()
    9. location.href = "http://www.163.com"
    10. }
    11. }
    12. script>
    13. head>
    14. <body>
    15. <a href="http://www.163.com">进入网易a>
    16. <button onclick="intoPage()">进入页面button>
    17. <a href="index.html?username=zhangsan&password=123456">进入首页a>
    18. <button onclick="location.reload()">刷新页面button>
    19. body>
    20. html>

    3.History历史记录对象

    获取方式:可以用window对象中的属性获取。 常用的方法:go();注:1表示前进,-1表示后退。

    补:Navigator浏览器对象。以及Screen显示器屏幕。基本不用仅作了解!!Screen的属性如下:

    • availHeight                                            获取系统屏幕的工作区域高度,排除 Microsoft Windows 任务栏。     
    • availWidth                                             获取系统屏幕的工作区域宽度,排除 Windows 任务栏。     
    • height                                                    获取屏幕的垂直分辨率。 
    • width                                                      获取屏幕的水平分辨率。 
    1. <head>
    2. <meta charset="utf-8">
    3. <title>title>
    4. head>
    5. <body>
    6. <a href="A.html">进入A页面a>
    7. <a href="javascript:void(history.go(1))">前进a>
    8. body>
    9. html>

    二、DOM文档对象模型

    DOM(Document Object Model) 文档对象模型,将标记语言文档的各个组成部分封装为对象。

    1.Document文档对象

    用window对象中的属性获取,window.document。常用的属性:

    • body                                                        可以获取body标签对象
    • title                                                          属性获取文档标题
    • lastModified                                             获取文档最后一次修改时间
    • URL                                                         获取地址栏中的地址

    常用的方法如下:

    (1)获取Element对象

    • getElementById()                                    通过id属性值获取唯一的元素
    • getElementsByTagName()                      通过标签名称获取元素对象数组
    • getElementsByName()                            通过name属性值获取元素对象数组
    • getElementsByClassName()                   通过class属性值获取元素对象数组                
    • querySelector()                                        根据css的选择器语法来选择的,获取的是第一个是个单数
    • querySelectorAll(".myclass")                    根据css的选择器语法来选择的,获取的是多个

    (2)创建其他对象

    • createElement                                           创建元素对象
    • createAttribute                                           创建属性对象
    • createComment                                         创建注释对象
    • createTextNode                                         创建文本对象
    • setAttribute()                                              给属性对象设置值
    • remove()                                                    删除自己
    • removeChild()                                            移除子元素
    • removeAttribute("align")                             根据属性名来移除标签上的属性
    • removeAttributeNode(attr)                          移除属性对象。传入的是一个属性对象
    • replaceChild(h4,h)                                      站在父元素的角度,替换子元素,值1:新的元素,值2:是要替换的旧元素。
    • insertBefore(h5,h1)                                     站在父标签的角度,在这个h1标签对象的前面插入h5这个标签对象。
    1. <head>
    2. <meta charset="utf-8">
    3. <title>title>
    4. head>
    5. <body id="bd">
    6. <h1 id="myh">aaah1>
    7. <h2 class="myclass">000000001h2>
    8. <h2 class="myclass">000000002h2>
    9. <h2 class="myclass">000000003h2>
    10. <h2 class="myclass">000000004h2>
    11. <h2 class="myclass">000000005h2>
    12. <h2 class="myclass">000000006h2>
    13. <h2 class="myclass">000000007h2>
    14. <h2 class="myclass">000000008h2>
    15. <h2 class="myclass">000000009h2>
    16. <h2 class="myclass">000000010h2>
    17. <h3>0000001h3>
    18. <h3>0000002h3>
    19. <h3>0000003h3>
    20. <h3>0000004h3>
    21. <h3>0000005h3>
    22. <h3>0000006h3>
    23. <h3>0000007h3>
    24. <h3>0000008h3>
    25. <h3>0000009h3>
    26. <h3>0000010h3>
    27. body>
    28. <script>
    29. /* 获取Element对象 */
    30. var myh = document.getElementById("myh");
    31. var bd = document.getElementById("bd");
    32. //根据类名获取多个标签对象数组,这个数组是伪数组,
    33. var eleArr = document.getElementsByClassName("myclass");
    34. for (let i = 0; i < eleArr.length; i++) {
    35. if (i % 2 == 0) {
    36. eleArr[i].style.background = "yellow";
    37. } else {
    38. eleArr[i].style.background = "red";
    39. }
    40. }
    41. var eleArr2 = document.getElementsByTagName("h3");
    42. for (let i = 0; i < eleArr2.length; i++) {
    43. if (i % 2 == 0) {
    44. eleArr2[i].style.background = "pink";
    45. } else {
    46. eleArr2[i].style.background = "blue";
    47. }
    48. }
    49. script>
    50. html>

     2.标签对象的属性

    • nnerHTML属性                                            获取或设置 元素的 子内容
    • innerTEXT属性                                            获取标签之间的文本内容
    1. <head>
    2. <meta charset="utf-8">
    3. <title>title>
    4. head>
    5. <body>
    6. <input type="text" name="username" />
    7. <input type="checkbox" name="hobby" />学习
    8. <input type="checkbox" name="hobby" />游戏
    9. <input type="checkbox" name="hobby" />娱乐
    10. <input type="checkbox" name="hobby" />音乐
    11. <h1 class="hehe">0000001h1>
    12. <h1 class="hehe">0000002h1>
    13. <h1 class="hehe">0000003h1>
    14. <h1 class="hehe">0000004h1>
    15. <h1 class="hehe">0000005h1>
    16. <h1 class="hehe">0000006h1>
    17. <h1 class="hehe">0000007h1>
    18. <h1 class="hehe">0000008h1>
    19. <h1 class="hehe">0000009h1>
    20. <h1 class="hehe">0000010h1>
    21. <div>
    22. <div>
    23. <h3><a href="#">hehhea>h3>
    24. div>
    25. div>
    26. body>
    27. <script>
    28. //注意返回的是数组
    29. //针对表单项标签,有个特定方法 getElementsByName()
    30. var eleArr = document.getElementsByName("username");
    31. var ele = eleArr[0];
    32. alert(ele);
    33. var v = document.querySelector(".hehe");
    34. v.style.color = "red";
    35. var arr = document.querySelectorAll(".hehe");
    36. alert(arr.length);
    37. var aEle = document.querySelector("div>div>h3>a");
    38. aEle.style.fontSize = "50px";
    39. script>
    40. html>

    创建删除DOM元素案例:

    1. <head>
    2. <meta charset="utf-8">
    3. <title>title>
    4. head>
    5. <body>
    6. body>
    7. <script>
    8. //创建标签对象
    9. var myDiv = document.createElement("div");
    10. var bd = document.body;
    11. //给父元素添加子元素
    12. bd.appendChild(myDiv);
    13. //创建文本对象
    14. var text = document.createTextNode("这是一段文本");
    15. myDiv.appendChild(text);
    16. //创建属性对象
    17. var attr = document.createAttribute("style");
    18. attr.value = "color:red;font-size:30px";
    19. //给标签设置属性
    20. myDiv.setAttributeNode(attr);
    21. //创建注释对象
    22. var zhshi = document.createComment("这是一段注释");
    23. bd.append(zhshi);
    24. var myH1 = document.createElement("h1");
    25. bd.appendChild(myH1);
    26. var text2 = document.createTextNode("这是一段文本222222");
    27. myH1.appendChild(text2);
    28. //给标签设置属性
    29. myH1.setAttribute("id", "myh1");
    30. myH1.setAttribute("style", "color:blue;background:yellow");
    31. //删除元素
    32. //myH1.remove(); 站在自身的角度来删除自己
    33. //bd.removeChild(myDiv);
    34. //删除属性
    35. //myH1.removeAttributeNode(属性对象) //
    36. myH1.removeAttribute("id");
    37. //站在父元素的角度,替换子元素,值1:新的元素,值2:是要替换的旧元素。
    38. var myH2 = document.createElement("h2");
    39. bd.replaceChild(myH2, myH1);
    40. //站在父标签的角度,在这个h1标签对象的前面插入h5这个标签对象。
    41. var myH3 = document.createElement("h3");
    42. bd.insertBefore(myH3, myDiv);
    43. script>
    44. html>

    (小编也在努力学习更多哟!以后再慢慢分享的啦!)

    希望对友友们有所帮助!!!

     

  • 相关阅读:
    docker安装和优化
    数据压缩与管理:掌握Linux VDO和LVM的力量
    CSS常见选择器详解以及应用场景案例
    算法通过村第十一关黄金挑战——位运算如何实现压缩储存
    --initialize specified but the data directory has files in it. Aborting. 问题解决
    【Linux】之Jumpserver堡垒机的部署/搭建
    [0xgame 2023] week2-Crypto
    基于人工智能的智能化指挥决策和控制
    mjpg-streamer 使用入门
    R语言实现多变量孟德尔随机化分析(1)
  • 原文地址:https://blog.csdn.net/naoguoteng/article/details/128054966