要么改变世界,要么适应世界

JavaScript语法二

2020-03-15 12:40:00
119
目录

window对象

  • window对象是BOM的核心,window对象指当前的浏览器窗口

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

  • 全局变量是window对象的属性

  • 全局函数是window对象的方法

  • 甚至HTML DOM的document也是window对象的属性之一

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

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

  • 打开一个window窗口:windows.open()

    参数 描述
    URL 一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。
    name 一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。
    features 一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。
    replace 一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:
    true - URL 替换浏览历史中的当前条目。
    false - URL 在浏览历史中创建新的条目。
  • 关闭一个window窗口:windows.close()

    <html>
    
    <head>
        <script type="text/javascript">
            function closeWin() {
                myWindow.close()
            }
        </script>
    </head>
    
    <body>
        <script type="text/javascript">
            myWindow = window.open('', '', 'width=200,height=100')
            myWindow.document.write("This is 'myWindow'")
        </script>
        <input type="button" value="Close 'myWindow'" onclick="closeWin()" />
    </body>
    
    </html>
    

    当然了,如果想要通过打开一个窗口的方式来打开一个链接URL,是不推荐的,因为有些浏览器为了安全起见,可能会阻止windows.open()打开一个URL。

js对象控制HTML元素

想要要控制元素,首先就要先得到,或者说找到该元素,通过以下不同的几个不同的方法,可以得到或者控制HTML元素。

方法名 方法描述
document.getElementsByTagName() 返回带有指定标签名的对象的集合。
document.getElementById() 返回对拥有指定 ID 的第一个对象的引用。
document.getElementsByName() 返回带有指定名称的对象的集合。
node_name.getAttribute() 返回指定属性名的属性值。
node_name.setAttribute() 添加指定的属性,并为其赋指定的值。
如果这个指定的属性已存在,则仅设置/更改值。
node_name.childNodes 返回节点的子节点集合,以 NodeList 对象。
node_name.parentNode 以 Node 对象的形式返回指定节点的父节点
document.createElement() 通过指定名称创建一个元素
node_name.removeChild() 删除当前节点下的特定子节点
<body>
    <p name="p_name">1</p>
    <p name="p_name">2</p>
    <p name="p_name">3</p>
    <p name="p_name">4</p>
    <a id="a_id" href="https://yalexin.gitee.io/">博客</a>
    <div id="div">
        <p name="p_name" id="p_5">5</p>
        <p name="p_name">6</p>
    </div>
    <script>
        function demo() {
            var p_count = document.getElementsByTagName("p");
            var n_count = document.getElementsByName("p_name");
            // print:HTMLCollection(4)
            console.log(p_count);
            //通过下标访问集合中的元素
            console.log(n_count[1].innerHTML);
            // 通过id得到元素
            var a = document.getElementById("a_id");
            // 查找元素的属性
            console.log(a.getAttribute("href"));
            // 设置新的属性值
            a.setAttribute("href", "https://yalexin.gitee.io/guestbook/");
            var div = document.getElementById("div");
            // 得到子节点集合
            var child_list = div.childNodes;
            var p = document.getElementById("p_5");
            //得到父节点(只有一个)
            var parent = p.parentNode;
            var body = document.body;
            //创建一个输入框节点
            var input = document.createElement("input");
            input.type = "text";
            input.placeholder = "这是通过createElement方法创建的";
            // 将input添加到body中(在末尾)
            body.appendChild(input);
            var p_insert = document.createElement("p");
            p_insert.innerHTML = "这是通过insert方法插入的";
            // 将p_insert节点插入到p节点之前(id = p_5)
            div.insertBefore(p_insert, p);
            // 删除div的子节点p(id = p_5)
            div.removeChild(p);
        }
        demo();
    </script>
</body>

历史评论
开始评论