【前端学习】Day-17 DOM基本操作、js操作浏览器窗口

1. DOM获取节点

DOM(document object model)
js提供了一个document,指向的是HTML,在js中通过document对象
可以直接或者间接获取页面内容对应的标签。

DOM操作具体内容 - 操作节点(节点就是标签)

  1. 直接获取节点
    document.getElementById(id属性值)
    通过id属性值获取标签

    • getElementsByClassName(class属性值)
    • getElementsByTagName(标签名)
  2. 获取父节点:
    节点.parentElement - 获取指定节点的父节点

  3. 获取子节点:节点.children - 获取指定节点的所有子节点。

    • 节点.firstElementChild - 获取指定节点的第一个子节点。
    • 节点.lastElementChild - 获取指定节点的最后一个子节点。
  4. 添加节点

  5. 删除节点

<body>
    <div id="box1">
        <p id="p1">段落1</p>
    </div>
    <div id="box2">
        <a href="https://www.baidu.com" target="_blank">百度</a>
        <p id="p2">段落2</p>
    </div>
    <div id="box3">
        <p id="p3">段落3</p>
    </div>

    <script type="text/javascript">
        p1 = document.getElementById('p1')
        console.log(p1)
        p1.style.color = 'red'
        // p1.style = 'color: red;'

        p2 = document.getElementsByTagName('p')
        console.log(p2)
        colors = ['blue', 'green', 'pink']
        for (x in p2) {
            p2[x].style = `color:${colors[x]};`
        }

        div1 = document.getElementById('p1').parentElement
        console.log(div1)
    </script>
</body>

2. 添加节点

<body>
    <!-- 在div变迁前面添加span标签 -->
    <script>
        document.write('<span>aaa</span>')
    </script>

    <div id="div1">
        <p id="p1">段落</p>
    </div>

    <!-- 在div标签后面添加span标签 -->
    <script>
        document.write('<span>bbb</span>')
    </script>

    <!-- 在div标签里面的p标签前面插入a标签 -->
    <script>
        a = document.createElement('a')
        p = document.getElementById('p1')
        div1 = document.getElementById('div1').insertBefore(a, p)
    </script>
</body>

3. 删除节点

<body>
    <p id="p1">段落1</p>
    <p id="">段落2</p>
    <p id="">段落3</p>
    <p id="">段落4</p>

    <script>
        // remove() - 删除节点
        // 节点.remove
        p1 = document.getElementById('p1')
        p1.remove()

        p = document.getElementsByTagName('p')
        console.log(p)
        p[1].remove()
    </script>
</body>

4. 向节点中添加内容和属性

<body>
    <a>百度<b>一下</b></a><br>
    <a href="" id="a2" class="a2"> 22</a>

    <script>
        a1 = document.getElementsByTagName('a')
        // 添加内容
        a1[0].innerText = 'HTML'
        a1[0].innerText = 'HTML<b>CSS</b>'
        a1[0].innerHTML = 'HTML_1'

        // 添加标签
        a1[0].innerHTML = 'HTML<b>CSS</b>'

        // 添加属性
        a1[0].href = 'https://www.baidu.com'
        a1[0].target = '_blank'
        // class属性未变,id属性发生了变化
        a1[1].class = 'aa'
        // 修改class的属性值用className
        a1[1].className = 'AA'
        a1[1].id = 'aa'
    </script>
</body>

5. JavaScript操作浏览器窗口

<body>
    <script>
        // 打开浏览器新标签页:window.open()
        function openwindow_1() {
            w_1 = window.open('https://www.baidu.com')
        }

        // 关闭刚打开的新标签页
        function close_1() {
            w_1.close()
        }

        // 打开新窗口
        function openwindow_2() {
            w_2 = window.open('https://www.baidu.com', '_blank', 'width=1920, heigth=1080')
            // w_2.moveTo(500,200)
        }

        // 关闭刚打开的新标签页
        function close_2() {
            w_2.close()
        }

        // 关闭当前标签页
        function close_3() {
            window.close()
        }

        // 页面滚动
        function to_bottom() {
            y = 0
            y_max = 5000
            while (y <= y_max) {
                y += 500
                // window.scrollTo(x,y)
                window.scrollTo(0, y)
            }
        }
    </script>

    <input type="submit" value="打开新窗口" onclick="openwindow_2()">
    <input type="submit" value="关闭新窗口" onclick="close_2()">
    <br>
    <br>
    <input type="submit" value="打开新标签页" onclick="openwindow_1()">
    <input type="submit" value="关闭新标签页" onclick="close_1()">
    <br><br>
    <input type="submit" value="关闭当前窗口" onclick="close_3()">
    <br><br>
    <input type="submit" value="页面滚动到底部" onclick="to_bottom()">


    <div style="height: 5000px;">

    </div>
</body>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值