js的dom/bom对象

一.bom

1)navigator: 获取客户机(浏览器)的信息

2) screen:获取屏幕的信息

3)location:请求url地址

4)history:请求url的历史记录

//navigator
       document.write(navigator.appName+"<hr>") ;   //得到浏览器名称

        
//screen
        document.write(screen.width+"   ");     //得到屏幕宽度
        document.write(screen.height+"<hr>");      //得到屏幕高度

       
 //location
        document.write(location.href+"<br>");    //得到请求地址
        function  changeHref() {              //改变地址
            location.href="http://www.baidu.com";          //必须带有http,若无服务器为该文件所在服务器
        }

        
//history
        function back() {
            history.back();       //后退
            //history.go(-1);
        }
        function forward() {
            history.forward();      //上一个页面
            //history.go(1);
        }

5)window:表示一个窗口对象

-window对象是一个顶层对象,包含以上的四种对象

<script type="text/javascript">
       //confirm()方法;确定返回true,取消返回false
        var flag=confirm("是否删除");

        //prompt();输入对话框
        prompt("请输入","你好");     //第一个参数为提示信息;第二个为输入框默认值

        //open();打开一个新的窗口
        function fopen () {
            open("http://www.baidu.com","","width=200,height=100");
        }

        //close(); !!!浏览器兼容性差
        close();

        //定时器
        var id1=setInterval("alert(123)","3000");     //第一个参数为js代码,第二个为毫秒周期(循环执行);返回一个id
        var id2=setTimeout("alert(abc)","1000");     //同上,但只执行一次

        function clear1() {
            clearInterval(id1);       //清除interval
        }

        function clear2() {
            clearTimeout(id2);       //清除timeout
        }
    </script>
</head>
<body>
<input type="button" value="测试open()" onclick="fopen()">
<input type="button" value="clearinterval" onclick="clear1()">
<input type="button" value="cleartimeout" onclick="clear2()">
</body>

二.dom

1.document object model

    文档:超文本标记文档(html/xml)     

2.dom解析html过程:在内存中分配一个树形结构,把html的每部分都封装成对象.

3.document对象:表示整个文档

    1)常用方法

    -write()    !!当页面完整加载后,再write会覆盖之前的页面

    -getElementById()

    -getElementsByName()      //返回数组对象

            *若只有一个元素:getElementsByName()[0], 则返回那个对象

    -getElementsByTagName()

    2)向末尾添加接待点

 <script type="text/javascript">
        function add1() {
            //得到ul标签
            var ul1=document.getElementById("ulid");
            //创建标签
            var li1=document.createElement("li");
            //创建文本
            var text1=document.createTextNode("555");
            //把文本加入到标签之中
            li1.appendChild(text1);
            //把li加到ul之中
            ul1.appendChild(li1);
        }
    </script>
<ul id="ulid">
    <li>111</li>
    <li>222</li>
    <li>333</li>
    <li>444</li>
</ul>
<input type="button" value="add" onclick="add1()">

4.element对象

    1)要操作元素对象,首先通过document获取到它

    2)方法

    -getAttribute(属性)          !!!也可以通过元素.属性获取

    -setAttribute(属性,值);    

    -removeAttribute(属性);     !!不能删除value

    3)获取一个标签下面的所有子标签

    法一. childNode属性 但兼容性很差

    法二.   eg.   ul.getElementsByTagName("li");     //这个方法虽然是document的方法,但也可以这样使用

    4).操作dom树

        (1)插入节点

        -appendChild()   添加文本到标签/添加子节点到末尾

        *类似于剪切黏贴的效果   eg.将div1中的内容,利用该方法到div2,则div1中内容消失,转移到div2中

        -父节点.insertBefore(newNode,oldNode)    在指定节点之前插入新节点 

        (2)删除节点        -removeChild()       

        (3)替换节点        -replaceChild(new,old)

        (4)复制节点        -cloneNode(boolean)     *布尔值表示是否复制子节点


5.属性对象

6.文本对象

7.node对象:以上的父对象

    1)属性一:

    -nodeName    -nodeType    -nodeValue

<script type="text/javascript">
        function add1() {
            //元素对象
            var span1=document.getElementById("t");
            document.write(span1.nodeName+" "+span1.nodeType+" "+span1.nodeValue+"<hr>");
            //属性对象
            var id1=span1.getAttributeNode("id");
            document.write(id1.nodeName+" "+id1.nodeType+" "+id1.nodeValue+"<hr>");
            //文本对象
            var text1=input1.firstChild;
            document.write(text1.nodeName+" "+text1.nodeType+" "+text1.nodeValue+"<hr>");

        }
    </script>
</head>
<body>
<!--<input type="text" value="vvvv" id="t">-->
<span id="t" >fdfdfd</span>
<input type="button" onclick="add1()">
</body>

运行结果:     SPAN 1 null                id 2 t                #text 3 fdfdfd

    2)属性二:

    -父节点 parentNode

    -子节点 childNode(所有子节点)        firstChild     lastChild

    -同辈节点 nextSibling(下一个兄弟节点)      previousSibling(上一个)

8.innerHTML属性

    1)不是dom的标准组成部分,但是大多数浏览器都支持

    2)作用: 获取内容/向标签中设置内容(可以使html代码)

猜你喜欢

转载自blog.csdn.net/sinat_41627479/article/details/80433136