前段基础之BOM,DOM

window对象:

  在客户端JavaScript中,Window对象是全局对象,所有的表达式都在当前的环境中,也就是说要引用当前窗户根本不需要特殊的语法,可以吧那个窗口的属性作为全局变量来使用。而且将window.document缩写为:document ,   window.alert()写为alert()

alert()            显示带有一段消息和一个确认按钮的警告框。
setInterval()      按照指定的周期(以毫秒计)来调用函数或计算表达式。
clearInterval()    取消由 setInterval() 设置的 timeout。
setTimeout()       在指定的毫秒数后调用函数或计算表达式。
clearTimeout()     取消由 setTimeout() 方法设置的 timeout。
scrollTo()         把内容滚动到指定的坐标。

confirm()          显示带有一段消息以及确认按钮和取消按钮的对话框。
prompt()           显示可提示用户输入的对话框。
open()             打开一个新的浏览器窗口或查找一个已命名的窗口。
close()            关闭浏览器窗口。

示例:

window的子对象:

 navigator对象:

浏览器对象,通过这个对象可以判定用户所使用的浏览器,包含了浏览器相关信息。

navigator.appName  // Web浏览器全称
navigator.appVersion  // Web浏览器厂商和版本的详细字符串
navigator.userAgent  // 客户端绝大部分信息
navagator.platform   // 浏览器运行所在的操作系统

history对象:

浏览历史对象,包含了用户对当前页面的浏览历史,但我们无法查看具体的地址,可以用来前进或后退一个页面。

history.forward()  // 前进一页
history.back()  // 后退一页
history.go(n)  //  前进n页

location对象:

location.href  获取URL
location.href="URL" // 跳转到指定页面
location.reload() 重新加载页面

DOM

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

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

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

查找标签:

 

间接查找:

  节点的查找:

                           

   查找标签:

document对象的属性和操作:

  属性节点:

文本节点:

  

还有一些不常用的文本节点:
textContent ------------------------与innerText类似,返回的内容带样式
data         -----------------------文本内容
length------------------------------文本长度
createTextNode()--------------------创建文本
normalize()-------------------------删除文本与文本之间的空白
splitText()-------------------------分割
appendData()------------------------追加
deleteData(offset,count)------------从offset指定的位置开始删除count个字符
insertData(offset,text)-------------在offset指定的位置插入text
replaceData(offset,count,text)------替换,从offset开始到offscount处的文本被text替换
substringData(offset,count)---------提取从ffset开始到offscount处的文本

样式操作:

  操作class类:

  指定css操作:

obj.style.backgroundColor="red"
JS操作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

 练习代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            width: 200px;
            height: 200px;
            border-radius: 100px;
            background-color:green;
        }
        .c2{
            background-color: yellow;
        }
    </style>
    <script>
        function change(){
             var obj=document.getElementById("d1")
//            obj.classList.add("c2")
             obj.classList.toggle("c2");
        }
    </script>
</head>
<body>
<div class="d1 c1" id="d1"></div>
<button id="bt" onclick="change()">切换</button>
</body>
</html>
js改变标签属性,div切换颜色
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function allChoose(){
            var l=document.getElementsByTagName("input");
            for(var i=0;i< l.length;i++){
                l[i].checked=true
            }

        }
        function reChoose() {
            var l = document.getElementsByTagName("input");
            for (var i = 0; i < l.length; i++) {
                 if (l[i].checked) {
                    l[i].checked=false
                }else{
                    l[i].checked=true
                }




            }
        }
        function concle() {
            var l = document.getElementsByTagName("input");
            for (var i = 0; i < l.length; i++) {
                  l[i].checked = false
            }
            }

    </script>
</head>
<body>
<div style="border-bottom: 1px solid gray; padding-bottom: 5px">
    <button onclick="allChoose()">全选</button>
    <button onclick="reChoose()">反选</button>
    <button onclick="concle()">取消</button>
</div>
<div>
    <table border="1px solid black" style="margin-top: 5px">
        <tr>
            <td><input type="checkbox"></td>
            <td>1111111</td>
            <td>222222</td>
            <td>333333</td>
        </tr>
         <tr>
             <td><input type="checkbox"></td>
            <td>111111</td>
            <td>2222222</td>
            <td>3333333</td>
        </tr>
         <tr>
             <td><input type="checkbox"></td>
            <td>11111111</td>
            <td>22222222</td>
            <td>3333333</td>
        </tr>
         <tr>
             <td><input type="checkbox"></td>
            <td>11111111</td>
            <td>22222222</td>
            <td>33333333</td>
        </tr>
    </table>
</div>

</body>
</html>
表格中CheckBox的全选、反选、取消
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .left{
            width: 15%;
            height: 100%;
            position: fixed;
            left:0;
            top:0;
            background-color: chartreuse;
        }
        .title{
            height:20px;
            text-align: center;
            line-height:20px;
            padding: 5px 0;
            border-bottom: 1px solid hotpink;
        }
        .content>div{
            padding: 5px 10px;
            border-bottom: 1px solid grey;
        }
        .hide{
            display: none;
        }
    </style>
    <script>
        function Menu(that){         
            var contentEles = document.getElementsByClassName("content");
          
            for (var i=0;i<contentEles.length;i++){
                contentEles[i].classList.add("hide");
            }
            var nextEle = that.nextElementSibling;
            nextEle.classList.remove("hide");
        }
    </script>
</head>
<body>
<div class="left">
<div class="title" onclick="Menu(this)">菜单一</div>
<div class="content hide">
    <div>123</div>
    <div>456</div>
    <div>789</div>
</div>
<div class="title" onclick="Menu(this)">菜单二</div>
<div class="content hide">
    <div>123</div>
    <div>456</div>
    <div>789</div>
</div>
<div class="title" onclick="Menu(this)">菜单三</div>
<div class="content hide">
    <div>123</div>
    <div>456</div>
    <div>789</div>
</div>

</div>
</body>
</html>
js左侧菜单

事件:

HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,
这些属性可插入 HTML 标签来定义事件动作。 onclick 当用户点击某个对象时调用的事件句柄。 ondblclick 当用户双击某个对象时调用的事件句柄。 onfocus 元素获得焦点。 // 练习:输入框 onblur 元素失去焦点。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证. onchange 域的内容被改变。 应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动) onkeydown 某个键盘按键被按下。 应用场景: 当用户在最后一个输入框按下回车按键时,表单提交. onkeypress 某个键盘按键被按下并松开。 onkeyup 某个键盘按键被松开。 onload 一张页面或一幅图像完成加载。 onmousedown 鼠标按钮被按下。 onmousemove 鼠标被移动。 onmouseout 鼠标从某元素移开。 onmouseover 鼠标移到某元素之上。 onselect 在文本框中的文本被选中时发生。 onsubmit 确认按钮被点击,使用的对象是form。

常用属性和操作:

  操作内容:

innerText                     文本
innerHTML                    HTML内容
val                               值

  文档节点的增删改查:

增:

createElement(name)  创建节点(标签)

appendChild() 末尾添加节点,并返回新增节点
insertBefore()  参照节点之前插入节点,两个参数:要插入的节点和参照节点
删:

查找到要删除的元素
获取它的父元素
使用removeChild()方法删除
改:

第一种方式:

    使用上面增和删结合完成修改

第二种方式:

    使用setAttribute();方法修改属性          

    使用innerHTML属性修改元素的内容

查:

使用之前介绍的方法.

  

    

原文地址:https://www.cnblogs.com/kxllong/p/8137452.html