JS之BOM,DOM

简介:

BOM:Browser Object Model:浏览器对象模型,BOM中的顶级对象就是window
DOM:Document Object Model 文档对象模型。页面中有一个顶级对象:Document
window----皇上
document–总管太监,window对象下的属性,有的时候也是一个对象, 对象可以调用属性或者方法 window.document.getElementsByName();
页面中所有的内容都是window的,变量是属于window的,函数也是属于window,对象都是window的, 为了开发方便和维护,window是可以省略

   var num=10;console.log(window.num);function f1() {//this就是:谁调用了这个函数.,this就是谁console.log("调用了"+this);}window.f1();

BOM:

页面的加载事件,页面中所有的内容加载完毕后(页面中的标签、图片、外部引入…全部加载)才执行

window.onload=function () {//通过id获取元素var btnObj=document.getElementById("btn");console.log(btnObj.value);
};

页面关闭之后才执行,谷歌不支持,IE8支持

window.onunload=function () {alert("我执行了");
};
location是window对象下的一个属性,实际上也是一个对象,主要是对浏览器的地址栏做操作

凡是使用window的地方都可以省略window
console.log(location.href); //获取地址的 location.href="http://www.baidu.com"; //设置地址,地址改变,就会跳转 location.assign("http://www.baidu.com");//和location.href属性是一样的操作, location.replace("http://www.baidu.com");;//把当前页面的地址,替换成一个新的地址,不会保存到历史记录 location.reload();//重载,刷新 console.log(window.location.hash);//地址栏上#及后面的内容 console.log(window.location.host);//主机名字和端口号 console.log(window.location.hostname);//主机名字 console.log(window.location.pathname);//文件的相对路径 console.log(window.location.port);//端口 console.log(window.location.protocol);//协议 console.log(window.location.search);//搜索的内容:获取的是?及后面的内容

navigator对象是window下的一个属性,主要是获取本地的相关系统的信息
 console.log(navigator.userAgent);//获取浏览器的信息console.log(navigator.platform);//系统的信息
history对象是window下的一个属性,主要是对历史记录的操作,前进或者是后退

想要前进和后退,必须要有历史记录

 history.forward();//前进history.back();//后退history.go();//如果是正数就是前进,负数就是后退
定时器:
 // 循环执行的定时器var timeId=setInterval(function () {alert("你瞅啥?瞅你咋地?");},1000);//返回的就是定时器id.对应clearInterval(定时器的id)清理定时器//清理定时器的方法clearInterval(timeId);// 延时执行定时器var timeId=setTimeout(function () {alert("哈哈");},1000);//返回的就是定时器id.对应clearTimeout(定时器的id)清理定时器//清理定时器clearTimeout(timeId);

DOM:

DOM的作用:操作页面的元素

  • element:元素----页面中的标签都是元素,标签
    * node:节点----页面中所有的内容都是节点:标签,文本(空白项),属性
    * parent:父亲
    * children:孩子
获取DOM:
  • doucment.getELementById(‘idname’);
  • document.getElementsByTagName(“img”)----返回的是一个伪数组
DOM事件绑定:
  ```<body><!--点击按钮弹出对话框--><!--第一种写法--><!--<input type="button" value="按钮" onclick="js的代码"/>--><input type="button" value="按钮" onclick="alert('被点了')"/><!--第二种写法--><script>function f1() {alert("哈哈");}</script><input type="button" value="按钮" onclick="f1();"/><!--第三种写法--><input type="button" value="按钮" id="btn1" /><script>function f2() {alert("哦被点了");}var btnObj=document.getElementById("btn1");//返回这个获取的对象(就是这个标签)btnObj.onclick=f2; //f2()调用</script><!--第四种写法--><input type="button" value="按钮" id="btn"/><script>//获取按钮//  var btnObj=document.getElementById("btn");//  btnObj.onclick=function () {//    alert("哈哈");//  };document.getElementById("btn").onclick=function () {alert("哈哈");};<!--第五种写法-->document.getElementById("btn").addEventListener(function(){alert('哈哈')},false)</script></body>```

修改DOM中的文本内容:

 <body>
<input type="button" value="显示效果" id="btn"/>
<input type="text" value="文本1"/><br/>
<input type="text" value="文本1"/><br/>
<div id="dv"></div>
<a href="http://www.baidu.com" id="ak">百度</a>
<script>//根据id获取按钮,为按钮注册点击事件,添加事件处理函数(后面的匿名函数)document.getElementById("btn").onclick = function () {//修改divvar dvObj=document.getElementById("dv");dvObj.innerText="我是一个div";//修改超链接的热点文字及地址var aObj=document.getElementById("ak");aObj.href="http://www.itcast.cn";aObj.innerText="Hello";// 修改input的内容var inputs=dvObj2.getElementsByTagName("input");for(var i=0;i<inputs.length;i++){//判断input标签的type属性是不是textif(inputs[i].type=="text"){inputs[i].value="都改变吧";}}};
</script>
</body>

修改img的宽高,src:

<body>
<!--图片标签本身有width和height的属性,是不需要加px-->
<img src="images/liu.jpg" alt="美景" width="300" height="400" id="img1"/>
<script>
//点击图片,设置宽和高
var imgObj = document.getElementById("img1");
imgObj.onclick = function () {this.width = "500";this.height = "200";//鼠标在图片上的时候显示的信息this.title = "好大的图片啊";this.src='images/boduo.jpg'
};
/*
* 普通的标签的属性:src/href/title/width/height/...
* 表单标签的属性:name/value/type/checked/disabled/selected...
*/
</script>
</body>

如果html标签中的这个属性和值,都是自己,并且只有一个,此时在js代码的DOM操作中值就是布尔类型, checked,selected,disabled…

<body>
<div id="dv1">
<input type="button" value="选择性别" id="btn1" />
<input type="radio" value="2" name="sex" id="ck"/>女
</div><div id="dv2">
<input type="button" value="选择兴趣" id="btn2" />
<input type="checkbox" value="1" name="xingque"/>吃饭
<input type="checkbox" value="2" name="xingque"/>睡觉
<input type="checkbox" value="3" name="xingque" id="ddd"/>打豆豆
</div>
<div id="dv3">
<input type="button" value="选择城市" id="btn3"/>
<select id="s1"><option value="1">北京</option><option value="2">上海</option><option value="3">重庆</option><option value="4" id="op1">天津</option>
</select>
</div><script>
//点击按钮选择性别
//根据id获取按钮,添加点击事件,添加事件处理函数
document.getElementById("btn1").onclick=function () {//根据id获取性别为女的这个input标签document.getElementById("ck").checked=true;
};//选择性别
document.getElementById("btn2").onclick=function () {document.getElementById("ddd").checked=true;
};//选择城市
document.getElementById("btn3").onclick=function () {document.getElementById("op1").selected=true;
};
</script></body>

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

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

相关文章

自动驾驶新纪元:城区NOA功能如何成为智能驾驶技术的分水岭

目录 一、NOA 的定义 二、NOA 的主要特点 导航集成 场景覆盖 智能决策 高级感知能力 驾驶员参与 三、NOA 的优势 四、NOA的衡量指标 定性评价指标 安全性评价指标定义 可靠性评价指标定义 舒适性评价指标定义 通行效率评价指标 定量评价指标 五、代表厂商的实测…

石岩路边理发好去处

周末带娃去罗租公园玩&#xff0c;罗租公园旁边就是百佳华和如意豪庭小区&#xff0c;发现如意豪庭小区对面挺多路边理发摊点 理发摊点聚焦在这里的原因是刚好前面城管来了暂时避避&#xff0c;例如还有一个阿姨剪到一半就跟着过来。这里的城管只是拍了一处没有摊位的地方&…

STM32-笔记24-智能开关垃圾桶盖

一、模块及接线 二&#xff0c;项目目的 以下几个事件触发时&#xff0c;自动开盖&#xff0c;并伴随蜂鸣器短响一声&#xff0c;同时 LED 灯闪烁一下&#xff0c;2秒后自动关盖&#xff1a; 检测到有人靠近检测到有震动按下按键 KEY1 实验框图如下&#xff1a; 三、项目前期…

从零开始开发纯血鸿蒙应用之UI封装

从零开始开发纯血鸿蒙应用 一、题引二、UI 组成三、UI 封装原则四、实现 lib_comps1、封装 UI 样式1.1、attributeModifier 属性1.2、自定义AttributeModifier<T>类 2、封装 UI 组件 五、总结 一、题引 在开始正文前&#xff0c;为了大家能够从本篇博文中&#xff0c;汲…

使用ArcGIS Pro自带的Notebook计算多个遥感指数

在之前的分享中&#xff0c;我们介绍了如何使用ArcPy将GEE下载的遥感影像转为单波段文件。基于前面创建的单波段文件&#xff0c;我们可以一次性计算多种遥感指数&#xff0c;例如NDVI、EVI、NDSI等。我这里直接在ArcGIS Pro中自带的Notebook进行的运行。如下图所示&#xff0c…

超大规模分类(一):噪声对比估计(Noise Contrastive Estimation, NCE)

NCE损失对应的论文为《A fast and simple algorithm for training neural probabilistic language models》&#xff0c;发表于2012年的ICML会议。 背景 在2012年&#xff0c;语言模型一般采用n-gram的方法&#xff0c;统计单词/上下文间的共现关系&#xff0c;比神经概率语言…

275-增强型多功能数据采集卡PCIe-6251-EX

产品特点&#xff1a; 高速高精度数据采集&#xff0c;16bit10MSPS&#xff0c;32路单端/16路差分高速高精度任意波形发生&#xff0c;14bit165MHz&#xff0c;2路完全独立完全可编程的I/O端口&#xff0c;33个完全可编程的量程选择&#xff0c;0~5V/0~10V/5V/10VPCIe通信接口…

Llama 3 后训练(三)

目录 4. 后训练 4.1 建模 图表解读 4.1.1 聊天对话格式 4.1.2 奖励建模 4.1.3 监督微调&#xff08;Supervised Finetuning&#xff09; 4.1.4 直接偏好优化&#xff08;Direct Preference Optimization&#xff09; 4.1.5 模型平均&#xff08;Model Averaging&#x…

机器人C++开源库The Robotics Library (RL)使用手册(四)

建立自己的机器人3D模型和运动学模型 这里以国产机器人天机TR8为例,使用最普遍的DH运动学模型,结合RL所需的描述文件,进行生成。 最终,需要的有两个文件,一个是.wrl三维模型描述文件;一个是.xml运动学模型描述文件。 1、通过STEP/STP三维文件生成wrl三维文件 机器人的…

Go+chromedp实现Web UI自动化测试

1.为什么使用go进行UI自动化测试&#xff1f; 速度&#xff1a;Go速度很快&#xff0c;这在运行包含数百个UI测试的测试套件时是一个巨大的优势 并发性&#xff1a;可以利用Go的内置并发性(goroutines)来并行化测试执行 简单&#xff1a;Go的简约语法允许您编写可读且可维护…

【LLM综述】29种大模型Prompt Engineering技术

note 从零样本&#xff08;Zero-shot&#xff09;提示到最新进展的各种提示技术&#xff0c;包括推理和逻辑链&#xff08;Chain-of-Thought, CoT&#xff09;提示、自动链式思考&#xff08;Auto-CoT&#xff09;提示、自我一致性&#xff08;Self-Consistency&#xff09;提…

基于SpringBoot的实验室信息管理系统【源码+文档+部署讲解】

系统介绍 视频演示 基于SpringBootVue实现的实验室信息管理系统采用前后端分离的架构方式&#xff0c;系统分为管理员、老师、用户三种角色&#xff0c;实现了用户管理、设备管理、实验室查询、公告、课程、实验室耗材管理、我的等功能 技术选型 开发工具&#xff1a;idea2…

arcgis模版空库怎么用(一)

这里以某个项目的数据为例&#xff1a; 可以看到&#xff0c;属性表中全部只有列标题&#xff0c;无数据内容 可能有些人会认为空库是用来往里面加入信息的&#xff0c;其实不是&#xff0c;正确的用法如下&#xff1a; 一、下图是我演示用的数据&#xff0c;我们可以看到其中…

基于Spring Boot + Vue3实现的在线汽车保养维修预约管理系统源码+文档

前言 基于Spring Boot Vue3实现的在线汽车保养维修预约管理系统是一种前后端分离架构的应用&#xff0c;它结合了Java后端开发框架Spring Boot和现代JavaScript前端框架Vue.js 3.0的优势。这样的系统可以为汽车服务站提供一个高效的平台来管理客户的预约请求 技术选型 系统…

论文研读:Text2Video-Zero 无需微调,仅改动<文生图模型>推理函数实现文生视频(Arxiv 2023-03-23)

论文名&#xff1a;Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Generators 1. 摘要 1.1 方法总结 通过潜空间插值, 实现动作连续帧。 以第一帧为锚定&#xff0c;替换原模型的self-attention&#xff0c;改为cross-attention 实现 保证图片整体场…

AI安全的挑战:如何让人工智能变得更加可信

引言 随着人工智能&#xff08;AI&#xff09;技术在各个领域的广泛应用&#xff0c;尤其是在医疗、金融、自动驾驶和智能制造等行业&#xff0c;AI正在重塑我们的工作和生活方式。从提高生产效率到实现个性化服务&#xff0c;AI带来了前所未有的便利。然而&#xff0c;在享受这…

去除el-tabs 下面的灰色横线,并修改每一项的左右间距,和字体颜色

HTML <el-tabs v-model"activeName" class"demo-tabs" tab-click"handleClick"><el-tab-pane label"全部" :name"null"></el-tab-pane><el-tab-pane label"问答陪练" name"general-t…

Selenium和WebDriver的安装与配置

1、Selenium的安装 直接黑窗口执行&#xff1a;pip install selenium3.141.0 可能遇到的问题&#xff1a; 解决方法配置环境变量&#xff1a; 找到目录&#xff1a;&#xff08;以自己电脑为准&#xff09; C:\Users\Administrator\AppData\Local\Programs\Python\Python38-…

HTML——45.单元格合并

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>表格</title></head><body><!--合并单元格&#xff1a;1.在代码中找到要合并的单元格2.在要合并的所有单元格中&#xff0c;保留要合并的第一个单元格…

APP项目测试 之 APP性能测试-- 性能测试工具(SoloPi工具)

1.SoloPi简介 &#xff08;1&#xff09;什么是SoloPi&#xff1f; SoloPi&#xff1a; 是一个无线化、非侵入式的 Android 自动化工具 &#xff0c;具备 录制回放、性能测试 等功能。 &#xff08;2&#xff09;SoloPi的作用是什么&#xff1f; 基础性能测试&#xff1a;能够…