js基础之BOM和DOM

一.   BOM

1.      window对象

       1)  所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

       全局变量是 window 对象的属性。全局函数是 window 对象的方法。

      2)常用的window方法

            window.innerHeight  -----  浏览器窗口的内部高度

            window.innerWidth   ------  浏览器窗口的内部宽度

            window.open()       -----   打开新窗口

            window.close()       -----   关闭窗口

 

2.      window的子对象

1)      location

作用:用于获得当前页面的地址(URL),并把浏览器重定到新的页面.

常用属性和方法:

               location.href   获得URL

               location.href=’路径’  跳转到指定页面

               location.reload()     重新加载刷新页面

 

2)      弹出框  3种

第一种:警告框

               alert(‘内容’);

               经常用于确保用户可以得到某些信息,当出现警告框时,需点确定才能进行别的操作.

 

第二种:确认框   了解

               confirm(‘内容’)

               用于验证或者接收某些信息.点确认返回true,点取消返回flase

 

第三种.提示框  了解

               prompt(‘用户输入的内容’,’默认内容’);

               用于提示用户在页面输入某个值.

               输入完内容之后点确认返回输入内容,点取消返回空字符串.

                 

3)      计时相关

  1.setTimeout(‘js语句’,毫秒)            一段时间之后做一些事情

            第一个参数一般是写function函数,不然不会过一段时间,先执行了这个js语句.

        clearTimeout()         取消一段时间后要做的事情

 

2.setInterval(‘js语句’,时间间隔)            每隔一段时间做一些事情

  clearInterval(必须有setInterval()返回的id值)

var t=setInterval(function f(){console.log('我是setInterval')},3000);

                                     clearInterval(t);

 

二.   DOM

1.      什么是DOM

 DOM(Document Object Model)是一套对文档的内容进行抽象和概念化的方法。 

  当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

  HTML DOM 模型被构造为对象的树。

 

 

  DOM标准规定HTML文档中的每个成分都是一个节点(node):

  • 文档节点(document对象):代表整个文档
  • 元素节点(element 对象):代表一个元素(标签)
  • 文本节点(text对象):代表元素(标签)中的文本
  • 属性节点(attribute对象):代表一个属性,元素(标签)才有属性
  • 注释是注释节点(comment对象) 

 

  JavaScript 可以通过DOM创建动态的 HTML:

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应(鼠标点击事件,鼠标移动事件等)

2.查找标签     (想要操作该标签,需要先查找)

     1)直接查找

          document.getElementById(‘id’)      根据id获取一个标签

          document.getElementsByClassName(‘类名’)    根据class属性获取标签,可以多个,是以数组的形式

          document.getElementsByTagName(‘标签名’)   根据标签名获取标签集合

     2)间接查找

          parentElement       父节点标签元素

children                所有子标签

firstElementChild      第一个子标签元素

lastElementChild       最后一个子标签元素

nextElementSibling     下一个兄弟标签元素

previousElementSibling  上一个兄弟标签元素

查找出来的内容是个数组,那么就可以通过索引来取对应的标签对象

 

 

3)节点操作

         1.创建节点(就是创建标签)  createElement

                  var  Ele=document.createElement(‘标签’);

 

         2.添加节点

                  1)追加一个节点(作为最后的子节点)

                          父节点.appendChild(新节点);

                  2)把追加的节点放到某个节点的前面

                          父节点.insertBefore(新节点,某个节点);

 

         3.删除节点

        父节点.removeChild(某个节点);

                 

         4.替换节点

                  父节点.replaceChild(新节点,某个节点);

 

         5.属性节点

                  1)获取文本节点的值:

                          获得的标签.innerText       获取该标签内以及子标签内的所有内容

                          获得的标签.innerHTML                  获取标签内以及字标签内的所有内容,包括子标签名.

                  2)设置文本节点的值:

                                   获得的标签.innerText =’1’;        标签添加内容

                                   获得的标签.innerHTML         =’<标签>内容</标签>’;    标签添加子标签,如果之前有字标签,会全部覆盖

         6.attribute(属性)操作

            获取的标签.setAttribute(‘name’:’大白’);

                          获取的标签.getAttribute (‘name’);

                          获取的标签.removeAttribute (‘name’);

// 自带的属性还可以直接.属性名来获取和设置,如果是你自定义的属性,是不能通过.来获取属性值的 imgEle.src

imgEle.src="..."

 

7.获取值操作    获取的标签.value

                                   标签 input,select,textarea ,这些标签用户输入的内容能够被获取

 

                  8.class操作

                                   获取的标签.className                    获取标签的类名class

                                   获取的标签.classList.remove(获取的标签的类名)     删除指定类

                                                       .classList.add(类名)                 添加类

                                                       .classList.contains(类名)            查看类名是否存在,存在返回true,否则flase

                                                       .toggle(类名)            类名存在就删除,不存在就添加

 

 

                  9.指定css操作

                          规律:

                                   1.对于没有中横线的css属性一般直接使用style.属性名即可

                                                     obj.style.margin

obj.style.width

obj.style.left

obj.style.position

                                   2.对含有中横线的css属性,将中横线后面的第一个字母大写即可

                                                     obj.style.marginTop

obj.style.borderLeftWidth

obj.style.zIndex

obj.style.fontFamily

       

        10.事件

            1)常用事件

 

 

 

                  2)绑定方式

                          方式1:不常用了

                                  

 

                          方式2:

 

 

posted @ 2019-05-07 22:44  socoolonly1  阅读(56)  评论(0)    收藏  举报