JavaWeb——JavaScript(3/4)-JS对象:BOM、DOM(Window、Location,概念、标准模型、获取元素对象)

news2024/9/20 0:37:08

目录

BOM

介绍

Window

案例(1)

Location

DOM

概念

标准模型

获取元素对象

案例(2)

原始代码

完整代码


JS对象

BOM

介绍

  • 概念:Browser Object Model 浏览器对象模型,允许JavaScript与浏览器对话,JavaScript 将浏览器的各个组成部分封装为对象。
  • 组成:
  • Window:浏览器窗口对象
  • Navigator:浏览器对象
  • Screen:屏幕对象
  • History:历史记录对象
  • Location:地址栏对象

Window

  • 介绍:浏览器窗口对象。
  • 获取:直接使用window,其中window.可以省略。window.alert("Hello Window");    alert("Hello Window");
  • 属性
    • history:对 History 对象的只读引用。请参阅History 对象。
    • location:用于窗口或框架的 Location 对象。请参阅Location 对象。
    • navigator:对 Navigator 对象的只读引用。请参阅Navigator 对象。
  • 方法
    • alert():显示带有一段消息和一个确认按钮的警告框。
    • confirm():显示带有一段消息以及确认按钮和取消按钮的对话框。
    • setlnterval():按照指定的周期(以毫秒计)来调用函数或计算表达式。
    • setTimeout():在指定的毫秒数后调用函数或计算表达式。

案例(1)

<!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>对象-BOM</title>
    </head>
    <body>
        
    </body>
    <script>
        //获取
        window.alert("Hello BOM");
        alert("Hello BOM Window");

        //方法
        // confirm - 对话框 - 确认:true, 取消:false
        var flag = confirm("您确认删除该记录吗?");
        console.log("flag: "  + flag);

        //定时器 - setInterval - 周期性的执行某一个函数
        var i = 0;
        setInterval(function(){
            i++;
            console.log("定位器执行了" + i + "次");
        },2000);

        //定时器 - setTimeout - 延迟指定时间执行一次
        setTimeout(function(){
            console.log('JS');
        },10 * 1000);
    </script>
</html>

Location

  • 介绍:地址栏对象。
  • 获取:使用window.location获取,其中  window.可以省略。 
    • window.location.属性;     
    • location.属性;
  • 属性:
    • href:设置或返回完整的URL。
    • location.href = "https://www.baidu.com" ;

DOM

概念

  • 概念:Document Object Model,文档对象模型。
  • 将标记语言的各个组成部分封装为对应的对象:
    • Document:整个文档对象
    • Element:元素对象
    • Attribute:属性对象
    • Text:文本对象
    • Comment:注释对象
  • JavaScript 通过DOM,就能够对HTML进行操作:
    • 改变 HTML 元素的内容
    • 改变 HTML 元素的样式(CSS)
    • 对 HTML DOM 事件作出反应
    • 添加和删除 HTML 元素
<!DOCTYPE html>
<html lang="en">
<head>
    <title>对象-DOM</title>
</head>
<body>
    <h1>DOM对象标题</h1>
    <a href="https://www.baidu.com">百度</a>
</body>
</html>

标准模型

  • DOM是W3C(万维网联盟)的标准,定义了访问 HTML 和 XML 文档的标准,分为3个不同的部分:
  1. Core DOM - 所有文档类型的标准类型
    1. Document:整个文档对象
    2. Element:元素对象
    3. Attribute:属性对象
    4. Text:文本对象
    5. Comment:注释对象
  2. XML DOM - XML文档的标准模型
  3. HTML DOM - HTML文档的标准模型
    1. Image:<img>
    2. Button:<input type='button'>

(一)innerHTML 属性

  1. 获取内容:使用 innerHTML 获取元素内容时,会返回元素内部包含的所有 HTML 标记和文本内容。无论是元素标签、属性,还是文本节点,都会被包含在返回的结果中。
  2. 设置内容:当使用 innerHTML 设置元素内容时,它会完全覆盖原有的内容。并且,如果设置的新内容中包含有效的 HTML 标记,浏览器会对这些标记进行解析和渲染,将其转换为对应的页面元素。

(二)innerText 属性

  1. 获取内容:通过 innerText 获取元素内容时,只会返回元素内部的文本内容,会忽略所有的 HTML 标签,不会对标签进行解析。
  2. 设置内容:使用 innerText 设置元素内容时,同样会覆盖原有的内容。并且,如果设置的内容中存在 HTML 标签,这些标签不会被浏览器解析为实际的 HTML 元素,而是会将这些标签作为普通的文本进行显示,即进行了转义处理。

获取元素对象

  • HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的。
  • Document对象中提供了以下获取Element元素对象的函数:
  1. 根据id属性值获取,返回单个Element对象
    var h1 = document.getElementById('h1');
  2. 根据标签名称获取,返回Element对象数组
    var divs = document.getElementsByTagName('div');
  3. 根据name属性值获取,返回Element对象数组
    var hobbys = document.getElementsByName('hobby');
  4. 根据class属性值获取,返回Element对象数组
    var clss = document.getElementsByClassName('cls');
  5. 根据名称获取检索到的第一个选择器,返回单个Element对象

    var a = document.querySelector("a");
  6. 根据名称获取检索到的第一个选择器,返回Element对象数组
    var a = document.querySelectorAll("a");

案例(2)

通过DOM操作,完成如下效果实现。

  1. 点亮灯泡
  2. 将所有的div标签的标签体内容后面加上:very good
  3. 使所有的复选框呈现被选中的状态

原始代码

<!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>对象-DOM-案例</title>
</head>

<body>
    <img id="h1" src="img/off.gif">  <br><br>

    <div class="cls">天上人间</div>   <br>
    <div class="cls">灯泡程序员</div>  <br>

    <input type="checkbox" name="hobby"> 电影
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 游戏
</body>

<script>
    //1. 点亮灯泡 


    //2. 将所有div标签的内容后面加上



    //3. 使所有的复选框呈现选中状态
    

</script>
</html>

完整代码

<!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>对象-DOM-案例</title>
</head>

<body>
    <img id="h1" src="img/off.gif">  <br><br>

    <div class="cls">天上人间</div>   <br>
    <div class="cls">灯泡程序员</div>  <br>

    <input type="checkbox" name="hobby"> 电影
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 游戏
</body>

<script>
    //1. 点亮灯泡 : src 属性值
    var img = document.getElementById('h1');
    img.src = "img/on.gif";


    //2. 将所有div标签的内容后面加上: very good (红色字体) -- <font color='red'></font>
    var divs = document.getElementsByTagName('div');
    for (let i = 0; i < divs.length; i++) {
        const div = divs[i];
        div.innerHTML += "<font color='red'>very good</font>"; 
    }


    //3. 使所有的复选框呈现选中状态
    var ins = document.getElementsByName('hobby');
    for (let i = 0; i < ins.length; i++) {
        const check = ins[i];
        check.checked = true;//选中
    }

</script>
</html>

END 


学习自:黑马程序员——JavaWeb课程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git 提交自动带上storyid

公司里的运维团队的产品经理&#xff0c;那老六提出说要在每个提交带上的jira storyid或者bugid&#xff0c;不用他自己弄不顾他人麻烦&#xff0c;真想问候他的xx。不过既然已经成为定局&#xff0c;还是想想有没有其他办法。经一番调研&#xff0c;网上有比较零碎的信息&…

攻防世界--->地穴

前言&#xff1a;学习笔记。 下载 解压 查壳。 64位ida打开。 进入主函数。 很容易得知&#xff0c;这是一个RC4加密。 【 &#xff08;题外话&#xff09; 在reverse中&#xff0c;RC4考点&#xff0c;不会很难。 reverse中RC4关键点就是&#xff0c;抓住异或。 一般解这种…

Open a folder or workspace... (File -> Open Folder)

问题&#xff1a;vscode Open with Live Server 时 显示Open a folder or workspace... (File -> Open Folder)报错 解决&#xff1a;不可以单独打开文件1.html ; 需要在文件夹里打开 像这样

【哈希表】深入理解哈希表

目录 1、哈希表简介2、哈希函数2.1、概念2.2、常用的哈希函数2.2.1、直接定址法2.2.2、除留余数法2.2.3、平方取中法2.2.4、基数转换法 3、哈希冲突3.1、概念3.2、开放地址法【闭散列&#xff1a;key存放到冲突位置的“下一个”空位置】3.3、链地址法【开散列&#xff1a;冲突位…

SAM 2:分割图像和视频中的任何内容

文章目录 摘要1 引言2 相关工作3 任务&#xff1a;可提示视觉分割4 模型5 数据5.1 数据引擎5.2 SA-V数据集 6 零样本实验6.1 视频任务6.1.1 提示视频分割6.1.2 半监督视频对象分割6.1.3 公平性评估 6.2 图像任务 7 与半监督VOS的最新技术的比较8 数据和模型消融8.1 数据消融8.2…

dr 航迹推算 知识介绍

DR&#xff08;Dead Reckoning&#xff09;航迹推算是一种在航海、航空、车辆导航等领域中广泛使用的技术&#xff0c;用于估算物体的位置。DR航迹推算主要通过已知的初始位置和运动参数&#xff08;如速度、方向&#xff09;来预测物体的当前位置。以下是 DR 航迹推算的详细知…

跨平台电商数据整合:item_get API在电商大数据平台中的角色

在电商行业蓬勃发展的今天&#xff0c;跨平台运营已成为众多商家的必然选择。然而&#xff0c;随之而来的数据孤岛问题却成为了制约电商企业进一步发展的瓶颈。为了解决这一问题&#xff0c;电商大数据平台应运而生&#xff0c;而item_get API作为获取商品详情的关键接口&#…

统计学第6天

1、变量间关系的度量 函数关系 &#xff08;1&#xff09;是一一对应的确定关系&#xff1b; &#xff08;2&#xff09;设有两个变量x和y&#xff0c;变量y随x一起变化&#xff0c;并完全依赖于x,当x取某个数值时&#xff0c;y根据确定的关系取相应的值&#xff0c;称y是x的…

建设网盘聚合中心—Win10+Alist+RaiDrive

经常需要在网上找各种资源&#xff0c;但遇到 2 个问题&#xff1a; 1. 大部分网盘都需要先将文件保存在自己网盘后才能下载&#xff0c;也就是必须创建对应网盘账号。 2. 有些网盘还必须要下载客户端才能下载文件。 创建账号无法避免&#xff0c;但可以不用下载那么多的客户端…

写在 Pencils Protocol TGE 前:加密市场共识才是王道,拥抱社区

“Pencils Protocol 正在成为本轮市场周期中&#xff0c;加密项目建立共识最有力的工具&#xff01;” 对于加密项目而言&#xff0c;代币 TGE 是一个非常重要的事情&#xff0c;它不仅仅意味着生态内经济系统的全面启动&#xff0c;同时也意味着项目生态市场的全面开启。当然…

《Rust避坑式入门》第1章:挖数据竞争大坑的滥用可变性

赵可菲是一名Java程序员&#xff0c;一直在维护一个有十多年历史的老旧系统。这个系统即将被淘汰&#xff0c;代码质量也很差&#xff0c;每次上线都会出现很多bug&#xff0c;她不得不加班修复。公司给了她3个月的内部转岗期&#xff0c;如果转不出去就会被裁员。她得知公司可…

AF透明模式/虚拟网线模式组网部署

透明模式组网 实验拓扑 防火墙基本配置 接口配置 eth1 eth3 放通策略 1. 内网用户上班时间&#xff08;9:00-17:00&#xff09;不允许看视频、玩游戏及网上购物&#xff0c;其余时 间访问互联网不受限制&#xff1b;&#xff08;20 分&#xff09; 应用控制策略 2. 互联…

二维空间向量的p范数等密度轨迹

图2-52&#xff1a;二维空间向量的 ℓ p \ell p ℓp范数等密度轨迹。 想过两种方式&#xff0c;还是放在一起省地方。 禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系列教材&#xff09;》 禹晶、肖创柏、廖庆敏《数字图像处理》资源…

数据库系统原理及应用——仓库管理系统

目录 引言 一.需求设计说明书 1&#xff0e;需求分析 2.系统背景 3.系统目标 4.人员分配 5.数据流程图&#xff08;DFD&#xff09; 二.概念结构设计 1.局部E-R图 &#xff08;1&#xff09;供应商 &#xff08;2&#xff09;货物 &#xff08;3&#xff09;客户 &…

1-19 平滑处理——双边滤波 opencv树莓派4B 入门系列笔记

目录 一、提前准备 二、代码详解 cv2.bilateralFilter函数用于对图像进行双边滤波。双边滤波是一种保持边缘的平滑技术&#xff0c;常用于图像去噪声和增强图像的细节。函数的四个参数如下&#xff1a; 三、运行现象 四、完整工程贴出 一、提前准备 1、树莓派4B 及 64位系统…

stack smashing detect以及解决之道

0. 简介 相较于其他报错&#xff0c;stack smashing detect这个报错是最令人头疼的段错误种类。“Stack smashing detect” 是指在程序运行过程中检测到栈溢出的情况。栈溢出是一种常见的安全漏洞&#xff0c;发生在程序尝试往栈空间写入超过其边界范围的数据时。 1. 常见分类…

改写二进制文件

以下是一些常见的方法和工具&#xff1a; 1. 使用十六进制编辑器 十六进制编辑器 是最直接的工具之一&#xff0c;用于查看和编辑二进制文件中的数据。它允许你以十六进制格式查看和修改文件内容。 常见十六进制编辑器&#xff1a; HxD&#xff08;Windows&#xff09;Hex F…

铁路订票系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;车次信息管理&#xff0c;基础数据管理&#xff0c;论坛管理&#xff0c;通知公告管理&#xff0c;用户管理&#xff0c;轮播图信息 微信端账号功能包括&#xff1a;系统首页&a…

【linux学习指南】Linux编译器 gcc和g++使用

文章目录 &#x1f4dd;前言&#x1f320; gcc如何完成&#x1f309;预处理(进行宏替换) &#x1f320;编译&#xff08;生成汇编&#xff09;&#x1f309;汇编&#xff08;生成机器可识别代码&#xff09; &#x1f320;链接&#xff08;生成可执行文件或库文件&#xff09;&…

变压器制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型

变压器制造5G智能工厂工业物联数字孪生平台&#xff0c;推进制造业数字化转型。作为传统制造业的重要组成部分&#xff0c;变压器制造行业也不例外地踏上了数字化转型的快车道。而变压器制造5G智能工厂物联数字孪生平台的出现&#xff0c;更是为这一进程注入了强大的动力&#…