1.获取DOM对象、操作元素内容、操作元素属性、自定义属性、定时器

web Api基本认知

作用:通过JS去操作html页面和浏览器(实现浏览器中的某些功能)
分类:
DOM(网页):Document Object Model(文档对象模型)
BOM(浏览器):Borwser Object Model(浏览器对象模型)

DOM

DOM树

将网页中标签的关系以树状结构表现出来
在这里插入图片描述

DOM对象

浏览器根据html标签生成的JS对象
a)所有的标签属性都可以在这个对象上面找到
b)修改这个对象的属性会自动映射到标签身上
DOM核心思想:把网页内容当做对象来处理

document对象

a)是DOM里提供的一个对象
b)它提供的属性和方法都是用来访问和操作网页内容的
c)网页所有内容都在document里面

获取DOM对象

querySelector(‘选择器’)

    <div>
        <ul>
            <li></li>
        </ul>
    </div>
    <script>
        //获取页面中的标签语法:
        //a) document.querySelector('CSS选择器')  //注意,参数就是一个字符串,字符串就是各种css选择器
        let res = document.querySelector('div')
        // b)有返回值:返回的结果就是当前标签(标签对象)
        console.log(res)
        let res2 = document.querySelector(' div ul li') //通过后代选择器获取了li标签
        console.log(res2)
    </script>

在这里插入图片描述

querySelectorAll
    <div>文字1</div>
    <div>文字2</div>
    <div>文字3</div>
    <div>文字4</div>

    <script>

        let res = document.querySelector('div')   //querySelector只能获取满足条件的第一个标签
        console.log(res)

        //document.querySelectorAll('css选择器')  //可以获取到所有满足条件的标签  #id .class是css选择器
        let res2 = document.querySelectorAll('div')  //得到的是一个伪数组(伪数组也是一个数组,但是不能使用数组方法)
        console.log(res2) //数组中每一个值都是标签对象
        console.log(res2[1])

    </script>

在这里插入图片描述
如何界定返回的结果是伪数组呢?如果返回的结果没有Array就是伪数组
伪数组不能使用数组中的方法,但是伪数组依然可以使用for循环遍历,因为for循环不是数组中的方法

其他获取DOM元素的方法(了解)
   <div id="one" class="test1">文字1</div>
    <div id="two" class="test2">文字2</div>
    <div id="three">文字3</div>
    <div class="test1">文字4</div>

    <script>

        //  1.其他方式获取标签
        // a)通过标签的id获取标签对象
        // 总结:因为标签的id唯一,所以通过getElementById()只能获取一个标签
        const div = document.getElementById('one')
        console.log(div)
        //b)通过标签的名字获取标签对象
        // document.getElementsByTagName('标签名')
        console.log(document.getElementsByTagName('div'))  //得到一个伪数组
        // c)通过标签类名获取标签
        // document.getElementsByClassName('类名')//类名前面不能加点,加点就变成了类选择器
        let res = document.getElementsByClassName('test1')
        console.log(res)

    </script>

在这里插入图片描述

操作元素内容

获取标签中的内容

  <div id="one" class="test1">
        <p>文字1</p>
    </div>
    <div id="two" class="test2">文字2</div>
    <div id="three">文字3</div>
    <div class="test1">文字4</div>
    <div id="five"></div>
    <script>
        //获取标签中的内容
        // 赋值语法:
        // DOM标签对象.innerHTML=值
        // DOM标签对象.innerText=值

        //获取值语法:获取标签中的内容
        // DOM标签对象.innerHTML;
        // DOM标签对象.innerText;
        const div = document.querySelector('#one')
        //   二者的区别:
        //a) 如果标签内只有纯粹的文字,则innerHTML和innerText没有任何区别
        // b)如果标签中有文字+html标签,则innerHTML既可以获取文字也可以获取对应的HTML标签
        console.log(div.innerHTML)
        console.log(div.innerText)

        //给标签设置文字内容,会覆盖掉标签内原来的内容
        div.innerHTML = '呵呵呵呵'
        console.log(div.innerHTML)  //非纯文本标签也覆盖掉了
        div.innerHTML = '<h1>呵呵呵呵</h1>'  //innerHTML中的标签页会被渲染上去,而innerText的标签会被当成纯文本渲染


    </script>

在这里插入图片描述

操作元素属性

操作img的src属性

    <img src="../image/1.jpg" alt="">

    <script>
        // 操作图片标签中的src属性
        // a)获取图片的src属性
        // 语法:DOM标签对象.src
        const img = document.querySelector('img')
        let res = img.src //获得的是绝对路径
        console.log(res)
        // b)给图片标签设置src属性
        // 语法:DOM标签对象.src=值;
        img.src = '../image/2.jpg'


操作标签的样式属性

    <div>
    </div>
    <script>
        //操作标签的样式属性
        //1.行内式   //本质上通过操作标签的style属性实现
        //2.外联式  //本质都是通过选择器实现的
        //3.内嵌式  //本质都是通过选择器实现的

        //通过操作标签的style属性实现给标签设置样式的
        //语法:DOM标签对象.style.css属性=值

        let div = document.querySelector('div')
        div.style.backgroundColor = 'red'
        div.style.border = '2px solid blue'
        //通过行内样式一次可以给标签加若干标签属性,单独设置即可
        //style也是一个对象。那么style中有哪些属性我们才可以用 。可以通过console.log(div.style)查阅


    </script>

在这里插入图片描述

操作标签的类样式

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            height: 200px;
            width: 200px;
            background-color: red;
            border: 5px solid blue;
            border-radius: 50%;
        }
    </style>
</head>

<body>
    <div>
    </div>
    <script>
        // 1.操作标签的类样式
        // 语法:DOM标签对象.className='类名'

        // 代码演示
        // 1.定义一个样式
        // 2.获取div标签
        let div = document.querySelector('div')
        // 3.给div标签设置类样式
        div.className = 'box'


        // 通过className操作标签样式总结
        // a)如何给标签添加多个类名?只要在类命中加上空格       div.className = 'box  bd  w'
    	//b)通过className操作标签类名的时候,会覆盖标签原来的类名
    	//c)如果不希望覆盖原来的类名,将原来的类名再次添加
    	//d)className设置的值必须是类名,不能加点
	
	//操作类样式终级写法(推荐写法):
	//添加类名:DOM标签对象.classList.add('类名');//不会覆盖原来的类名
	//删除类名:DOM标签对象.classList.remove('类名')
	//切换类名:DOM标签对象.classList.toggle('类名')
	//类似开关,如果没有点击加上,如果有该类名,点击删除
	//判断是否包含类名:DOM标签对象.classList.contains('类名')

    </script>
</body>

</html>

在这里插入图片描述

操作表单元素属性

    <input type="text" value="呵呵">
    <input type="button" value="注册">


    <script>
        // 1.操作表单元素中的属性
        // a)获取表单元素的内容:DOM表单标签对象.value
        // b)设置表单元素的内容:DOM表单标签对象.value

        // 代码演示:
        let input = document.querySelector('input')
        let res = input.value
        console.log(res)
        input.value = 'hahahah'
        // 通过属性选择器找到标签对象
        let btn = document.querySelector('input[type="button"]')
        btn.value = "zhuce"
    </script>

在这里插入图片描述

操作复选框的元素属性

    <input type="checkbox">
    <script>
        //   1.操作复选框的选中状态
        // a)获取当前复选框的选中状态:DOM标签对象.checked
        // 总结:如果得到的结果是true,代表当前复选框是选中状态,否则是非选中状态
        // b)设置当前复选框的选中状态:DOM标签对象.checked=布尔值

        // 代码演示:
        let ck = document.querySelector('input')
        ck.checked = true
    </script>

在这里插入图片描述

操作按钮disabled属性

    <input type="button" value="按钮">
    <script>
        // 操作按钮是否可以点击
        // a)获取按钮的一个点击状态:DOM对象.disabled
        // 总结:如果获取的结果是false,代表当前是可点击的,如果是true,代表当前按钮是不可点击的
        // b)设置按钮的点击状态:DOM对象.disabled=布尔值

        let btn = document.querySelector('input')
        console.log(btn.disabled)

    </script>

自定义属性

应用:Ajax阶段操作数据,根据数据渲染页面时使用
标准属性(内置属性):标签自带的属性
自定义属性:程序员自己给标签定义的一个属性

    <div></div>
    <script>
        // 自定义属性基本操作方式
        // 1.可以直接在标签上加自定义属性或者通过js的方式给标签加自定义属性
        // a)如果直接给标签设置自定义属性,html5规范中:要求自定义属性必须以 data-属性名
        // b)通过js的方式给标签设置自定义属性:DOM标签对象.dataset.属性名=值;
        let div = document.querySelector('div')
        div.dataset.mygender = '男'
        console.log(div)

        // 2.如何获取标签上的自定义属性
        // 语法:DOM标签对象.dataset.属性名
        console.log(div.dataset.mygender)
    </script>


在这里插入图片描述

定时器-间歇函数

  <div></div>
    <script>
        //  定时器(间歇函数)
        // 特点:隔一段时间执行一次(时间间隔是可以自己控制的)
        // 应用场景:网页中的倒计时。轮播图 注册协议.......
        // 定时器的一个使用:本质是一个函数,函数会自己隔一段时间调用自己,不需要手动调用
        // 语法:
        // setInterval(function(){},时间间隔)
        // 注意:时间间隔的单位是毫秒
        let i = 0
        // 开启定时器
        let id = setInterval(function () {
            i++
            document.write(`${i},`)
        }, 1000);
        console.log(id)
        // 停止定时器
        //语法: clearInterval(定时器ID)
        // 注意:停止定时器的时候,定时器id是不能随便定义的,定时器id必须通过定时器返回值获得
    </script>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/453772.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【考研学子必看 ★2024考研国家线及调剂策略(2)】

----------------------------------------------------------------------------------------------------- 考研复试科研背景提升班 教你快速深入了解掌握考研复试面试中的常见问题以及注意事项&#xff0c;系统的教你如何在短期内快速提升自己的专业知识水平和编程以及英语…

【性能测试】移动测试md知识总结第1篇:移动端测试课程介绍【附代码文档】

移动测试完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;移动端测试课程介绍&#xff0c;移动端测试知识概览&#xff0c;移动端测试环境搭建&#xff0c;ADB常用命令学习主要内容,学习目标,学习目标,1. window安装andorid模拟器,学习目标。主流移动端自动…

【c++修仙】c语言练气第九重动态内存管理

为什么要有动态内存 例如 int a20 char arr[10]{10}; 这些的内存是固定的 但是有时候我们需要的空间大小是在程序运行的时候才能知道的 malloc和free void* malloc (size_t size) 这个函数向内存申请一块连续可用的空间&#xff0c;并返回指向这块空间的指针。 如果开辟…

环信ChatroomUIKit功能详解——超详细介绍

聊天室是当下泛娱乐社交应用中最经典的玩法&#xff0c;通过调用环信的 IM SDK 接口&#xff0c;可以快速创建聊天室。如果想根据自己业务需求对聊天室应用的 UI界面、弹幕消息、礼物打赏系统等进行自定义设计&#xff0c;最高效的方式则是使用环信的 ChatroomUIKit 。 文档地址…

抓包工具fiddler的使用

问题查询 定位bug是前端的问题还是后端的问题&#xff1f; 1.如果抓不到请求&#xff0c;显然就是前端的问题 2.如果有请求但是没有相应&#xff0c;那就是后端的问题 3.如果有请求也有相应&#xff0c;需要查看响应信息&#xff0c;如果返回报错了&#xff0c;则需要具体分析报…

模型量化(一)—— 非对称量化、对称量化(全代码)

模型量化是一种减少深度学习模型大小和提高推理速度的技术&#xff0c;通过降低模型参数的精度&#xff08;例如&#xff0c;从32位浮点数减少到8位整数&#xff09;来实现。 量化三个好处&#xff1a; 更少的内存消耗(对于智能手机等端侧设备很重要)更少的推断时间&#xff…

一道AI做过的小学奥数题,结果表明:今天的AI已经达到精神病人的智力水平

重庆家长找AI计算的小学奥数题&#xff0c;AI没有找到答案。也就是被吹上天的AI其实根本不具有人类智能。但不妨把AI理解为精神病人&#xff0c;因为他们有异常的艺术天赋。 两地A、B之间相距4000m&#xff1b;甲从A地以匀速60m/min向B出发&#xff0c;同时乙从B地出发以匀速26…

toJSONString空值被忽略解决办法 toJSONString过程中时间格式丢失问题解决办法

toJSONString空值被忽略解决办法 原代码&#xff1a; GcGarbageBuildingDO data gcGarbageBuildingService.get(id); result.putAll(JSON.parseObject(JSON.toJSONString(data), Map.class));查询出来的data中部分字段值为null&#xff0c;在toJSONString的过程中会把null值…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的车牌检测系统(Python+PySide6界面+训练代码)

摘要&#xff1a;本篇博客详细介绍了如何利用深度学习技术开发一个先进的车牌检测系统&#xff0c;并附上了完整的实现代码。系统核心采用了强大的YOLOv8算法&#xff0c;并对前代版本如YOLOv7、YOLOv6、YOLOv5进行了详尽的性能评估&#xff0c;包括mAP和F1 Score等关键指标的对…

重建大师模型构建精细网格失败是什么原因导致的呢?(如下图)

出现图中的报错一般是显存溢出、瓦块过大造成的。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件&#xff0c;输入倾斜照片&#xff0c;激光点云&#xff0c;POS信息及像控点&#xff0c;输出高精度彩色网格模型&#xff0c;可一键完成空三、自动建模和…

如何获取免费格式转换器MP3?全平台最新的20款软件推荐

随着数字音乐的普及&#xff0c;MP3格式已经成为了最为常见的音频格式之一。然而&#xff0c;有时我们可能会遇到需要转换音频格式的情况&#xff0c;比如将其他格式的音频文件转换为MP3格式。在这种情况下&#xff0c;一款好用的格式转换器就显得尤为重要。本文将为您推荐20款…

第14届环境与农业工程国际会议(ICEAE 2024)即将召开!

2024年第14届环境与农业工程国际会议&#xff08;ICEAE 2024&#xff09;将于6月7日至9日在泰国曼谷召开。本次会议旨在促进环境与农业工程的研究和开发活动&#xff0c;共同探讨领域内最新以及具有根本性的进展突破。热忱欢迎从事相关领域研究的专家&#xff0c;学者和专业技术…

YOLOv9改进项目|关于本周更新计划的说明24/3/12

目前售价售价59.9&#xff0c;改进点30个 专栏地址&#xff1a; 专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 日期&#xff1a;24/3/12 本周更新计划说明&#xff1a; 1. 更新华为Gold YOLO中的…

人工智能迷惑行为大赏!

目录 人工智能迷惑行为大赏 一&#xff1a;人工智能的“幽默”瞬间 1. 图像识别出现AI的极限 2. 小批量梯度下降优化器 3. 智能聊天机器人的冰雹问题 4. 大语言模型-3经典语录 二&#xff1a;技术原理探究 1. 深度学习 2. 机器学习 3. 自然语言处理 4. 计算机视觉 三…

[Java、Android面试]_02_HashMap的原理

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料&#xff0c;感兴趣的朋友可收藏关注。由于时间有限&#xff0c;只能每天整理一点&#xff0c;分享一点儿&#xff01; 现分享如下&#xf…

读西游记第一回:西游记世界格局

天地之数&#xff1a; 元&#xff1a;十二万九千六百岁&#xff08;129600年&#xff09; 1元12会&#xff1a;子、丑、寅、卯、巳、午、未、申、酉、戌、亥。每会18000年。与12地支对应。 亥会期&#xff1a;前5400年混沌期&#xff0c;后5400年&#xff0c;盘古开天辟地&am…

【STL】stack栈容器与list链表容器

1.栈stack 栈具有先进后出的特性&#xff0c;最先进入的数据压在最底下&#xff0c;最后出来 2.list链表容器 list链表容器是一种双向链表&#xff0c;两端都可插入与删除&#xff0c;是双向访问迭代器&#xff0c;与vertor随机访问迭代器有不同的区别 reverse&#xff08;&…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Toggle)

组件提供勾选框样式、状态按钮样式及开关样式。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 仅当ToggleType为Button时可包含子组件。 接口 Toggle(options: { type: ToggleType, is…

2024-Android大厂(字节跳动,腾讯

PS&#xff1a;全文点击蓝色文字&#xff0c;即可跳转链接 【字节面试官&#xff1a;看了3000多份简历&#xff0c;面试1000场后&#xff0c;想给金九银十找工作的程序员几点建议附大厂真题面经】 本文主要介绍校招&#xff0c;上半年疫情原因真正面试的时间和机会也不多&#…

网络流量监控软件AnaTraf:优化性能、排除故障的最佳选择

目录 导言 网络流量监控的重要性 AnaTraf网络万用表的功能与优势 网络故障排除与优化网络性能 结论 导言 在当今数字化时代&#xff0c;计算机网络已经成为企业和组织的核心基础设施。然而&#xff0c;网络流量的管理和监控对于确保网络性能的稳定和优化至关重要。本文将介…