学习js第十天(DOM上)

DOM:Document Object Model文档对象模型(就是操作html中标签的一些能力)

可以操作的内容:

        获取一个元素

        移除一个元素

        创建一个元素

        向页面里面添加一个元素

        给元素绑定一些事件

        获取元素的属性

        给元素添加一些css样式

        ...

DOM的核心对象就是document对象,它是浏览器内置的一个对象,里面存储专门用来操作元素的各种方法,页面中的标签我们通过js获取后就把这个对象叫做DOM对象


document对象:即文档对象。document对象是window对象中的子对象。document对象除了write()方法外,跟其他对象一样,也有自身一套属性和方法。

1、document对象属性

属性        说明
title文档标题,即title标签内容
URL文档地址
fileCreateDate文档创建日期
fileModifiedDate文档修改时间(精确到天)
lastModified      文档修改时间(精确到秒)
fileSize文档大小
fgColor定义文档的前景色
bgColor           定义文档的背景色
linkColor         定义“未访问”的超链接颜色
alinkColor        定义“被激活”的超链接颜色
vlinkColor        定义“访问过”的超链接颜色

2、document对象方法

方法说明
document.write() 输入文本到当前打开的文档
document.getElementById() 获取某个id值的元素
document.getElementsByName()获取某个name值的元素,用于表单元素
 
document.getElementsByTagName()获取某标签名的元素组,
document.getElementsByClassName()获取某类名的元素组
querySelector按照选择器的方式获取元素
querySelectorAll按照选择器的方式获取元素

querySelector和querySelectorAll:

相同点:都是按照选择器的方式获取元素

区别

querySelector只能获取一个元素,且是页面中第一个满足条件的元素;    

querySelectorAll可以获取所有满足条件的元素,以一个伪数组的形式返回,获取的是一组数据,也是需要索引来获取到准确的每一个DOM元素

在浏览网页的时候,我们经常看到不少网页标题在闪动。下面是‘网页动态标题’

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        //定义全局变量,用于标识
        var flag = 0;
        window.onload = function () {
            //定时器
            setInterval("titleChange()", 1000);
        }
        //定义函数
        function titleChange() {
            if(flag==0)
            {
                document.title = "★☆★Javascript学习网★☆★";
                flag = 1;
            }
            else
            {
                document.title = "☆★☆Javasctipte学习网☆★☆";
                flag = 0;
            }
        }
    </script>
</head>
<body>
</body>
</html>

操作元素内容:改变元素内容
  p.innerHtml="<h1>Html内容</h1>";
  p.innerText="纯文本内容";
  p.value = "表单内容";

innerHTML属性声明了元素含有的HTML文本,不包括元素本身的开始标记和结束标记。设置该属性可以用于为指定的HTML文本替换元素的内容。

innerText属性与inerHTML属性的功能类似,只是该属性只能声明元素包含的文本内容。即使指定的是HTML文本,它也会认为是普通文本而原样输出。


操作元素css样式:style行内样式,如:div.style.backgroundColor='red'

        注意:属性名要用驼峰命名法fontSize、、

操作属性

获取元素的某个属性(包括自定义属性)=>getAttribute('属性名')

设置元素的某个属性(包括自定义属性)=>setAttribute('属性名','属性值') 

移除元素的某个属性(包括自定义属性)=>removeAttribute('属性名')


案例:选项卡

需求:点击上面的选项,下面对应区域显示内容

实现原理:绑定点击事件,onclick

        确定选项        this关键字

        清除所有样式,className=‘’

        设置选中样式 添加类名,单独设置样式

        动态添加索引号,确定选项对应区域

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        ul {
            width: 300px;
            height: 50px;
            display: flex;
        }

        ul,
        li {
            list-style: none;
        }

        ul li {
            width: 100px;
            height: 50px;
            line-height: 50px;
            text-align: center;
            background-color: pink;
            border-right: 1px solid #fff;
        }
        ul li:hover{
            cursor: pointer;
        }
        ol {
            position: relative;
        }

        ol li {
            width: 300px;
            height: 300px;
            position: absolute;
            display: none;
            text-align: center;
            line-height: 300px;
            font-size: 30px;
        }
        ul .active{
            background-color: skyblue;
        }
        ol .on{
            display: block;
        }
    </style>
</head>

<body>
    <ul>
        <li class="active">1</li>
        <li>2</li>
        <li>3</li>
    </ul>
    <ol>
        <li class="on" style="background-color: purple;">选项1</li>
        <li style="background-color: red;">选项2</li>
        <li style="background-color: green;">选项3</li>
    </ol>
    <script>
        let ulEles=document.querySelectorAll('ul>li')
        let olEles=document.querySelectorAll('ol>li')

        for(let i=0;i<ulEles.length;i++){
            ulEles[i].setAttribute('index',i)//动态添加索引号
            ulEles[i].onclick=function(){
                clearStyle()//清除所有样式
                this.className='active'//设置选中选项样式
                let index=this.getAttribute('index')
                olEles[index].className='on'

            }

            
        }
        function clearStyle(){
            for(let i=0;i<ulEles.length;i++){
                ulEles[i].className=''
                olEles[i].className=''
            }
        }
    </script>
</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值