JS之BOM和POM

JS之BOM和POM

目录

  • JS之BOM和POM
    • 什么是BOM 什么是DOM
    • BOM
        • `window.open(url,name,specs,replace)`
        • `window.close()`
        • `window.alert(message)`
        • `window.confirm(message)`
        • `window.prompt(message, defaultText)`
        • `window.setTimeout(function, milliseconds, arguments)`
        • `window.setInterval(function, milliseconds)`
        • `window.location.href`
    • DOM
      • 获取元素
        • `document.getElementById(id)`
        • `document.getElementsByClassName(className)`
        • `document.getElementsByTagName(tagName)`
        • `document.querySelector(selector)`
        • `document.querySelectorAll(selector)`
      • 操作元素
        • `element.innerHTML`
        • `element.textContent`
        • `element.textContent`
        • `element.getAttribute(attributeName)`
        • `element.setAttribute(attributeName, value)`
        • `element.classList`
      • 创建和添加元素
        • `document.createElement(tagName)`
        • `element.appendChild(childElement)`
        • `element.insertBefore(newElement, referenceElement)`
      • 删除元素
        • `element.removeChild(childElement)`
        • `element.remove()`
      • 事件处理
        • `element.addEventListener(event, callback)`
        • `element.removeEventListener(event, callback)`
        • `element.removeEventListener(event, callback)`

什么是BOM 什么是DOM

BOM:browser,浏览器对象,提供了访问和操作浏览器窗口的方法和属性

DOM:document,文档对象,通过js来访问和修改html文件中的元素

BOM

window.open(url,name,specs,replace)
  • url:在窗口要加载的URL地址
  • name:(可选)新窗口名称
    • _blank:在一个新窗口或标签页中打开 URL。
    • _self:在当前窗口或标签页中加载 URL(默认行为)。
    • _parent:在父级框架中加载 URL(如果有)。
    • _top:在顶级框架中加载 URL。
  • specs:(可选)以逗号分隔的字符串,例如"width=500,height=400"
window.open("https://www.baidu.com/","_blank","width=500,height=400")

image-20240221220821339

window.close()

关闭当前浏览器窗口

window.alert(message)

在浏览器中显示一个警告框,包含指定的消息

window.alert("你好")

image-20240221221142541

window.confirm(message)

显示一个带有消息和确定/取消按钮的对话框,并返回用户的响应

window.confirm("是否确定")

image-20240221221329820

window.prompt(message, defaultText)

显示一个带有消息和文本输入框的对话框,并返回用户输入的值

window.prompt("请输入姓名", "张三")

image-20240221221427391

window.setTimeout(function, milliseconds, arguments)

在指定的时间间隔后执行一次函数

let func1 = function (){
    for (let i = 0; i < arguments.length; i++) {
        console.log(arguments[i])
    }
}
window.setTimeout(func1, 1000,[1,true,3,"你好"])
// 延迟一秒后打印[1, true, 3, '你好']
window.setInterval(function, milliseconds)

每隔指定的时间间隔重复执行函数

let func1 = function (){
    for (let i = 0; i < arguments.length; i++) {
        console.log(arguments[i])
    }
}
window.setInterval(func1, 1000,[1,true,3,"你好"])
// 每隔一秒打印一次[1, true, 3, '你好']
window.location.href

获取或设置当前页面的 URL

console.log(window.location.href)

DOM

获取元素

document.getElementById(id)

通过元素的 ID 属性获取单个元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
    <p id="p1">你好</p>
</div>
<script>
    var p = document.getElementById("p1")
    console.log(p)
</script>
</body>
</html>

image-20240221230022159

document.getElementsByClassName(className)

通过元素的类名获取一组元素

<div>
    <p class="p1">你好</p>
</div>
<script>
    let p1 = document.getElementsByClassName("p1")
    console.log(p1)
</script>

image-20240221230312222

document.getElementsByTagName(tagName)

通过元素的标签名获取一组元素

<body>
<div class="d1">
    <p>你好</p>
</div>
<script>
    let p1 = document.getElementsByTagName("div")
    console.log(p1)
</script>
</body>

image-20240221230515208

document.querySelector(selector)

通过 CSS 选择器获取匹配的第一个元素

<body>
<div class="d1">
    <p>你好</p>
</div>
<script>
    // 以下二种方法的结果是一样的
    let test = document.querySelector("div")
    console.log(test)
    let test2 = document.querySelector(".d1")
    console.log(test2)
</script>
</body>

image-20240221230630113

document.querySelectorAll(selector)

通过 CSS 选择器获取所有匹配的元素

<body>
<div class="d1">
    <p id="p1">你好</p>
    <p id="p2">世界</p>
    <p id="p3">我是</p>
    <p id="p4">dom</p>
</div>
<script>
    let test = document.querySelectorAll("p")
    console.log(test)
</script>
</body>

image-20240221230932331

操作元素

element.innerHTML

获取或设置元素的 HTML 内容

<body>
<div class="d1">
    <p id="p1">你好</p>
</div>
<script>
    // 获取
    let p1 = document.getElementById("p1")
    console.log(p1.innerHTML)
	// 输出:<p id="p1">你好</p>
	
	// 设置
	p1.innerHTML = "你不好"
    console.log(p1) 
	// 输出:<p id="p1">你不好</p>
</script>
</body>
element.textContent

获取或设置元素的纯文本内容

<body>
<div class="d1">
    <p id="p1">你好</p>
</div>
<script>
    // 获取
    let p1 = document.getElementById("p1")
    console.log(p1.textContent)
    // 输出:你好

    // 设置
    p1.textContent = "你不好"
    console.log(p1.textContent)
    // 输出:你不好
</script>
</body>
element.textContent

获取或设置元素的纯文本内容

<body>
<div id="d1">
    我是一个div标签
    <p id="p1">你好</p>
</div>
<script>
    let d1 = document.getElementById("d1")
    console.log(d1.textContent)
</script>
</body>

image-20240221231823732

element.getAttribute(attributeName)

获取元素的指定属性值

<body>
<div id="d1">
    我是一个div标签
    <p id="p1">你好</p>
</div>
<script>
    let d1 = document.getElementById("d1")
    console.log(d1.getAttribute("id"))
</script>
</body>

image-20240221232132682

element.setAttribute(attributeName, value)

设置元素的指定属性值

<body>
<div id="d1">
    我是一个div标签
    <p id="p1">你好</p>
</div>
<script>
    let d1 = document.getElementById("d1")
    d1.setAttribute("id","d2")
    console.log(d1.getAttribute("id"))
</script>
</body>

image-20240221232258751

element.classList

获取或操作元素的类名

<body>
<div class="ioi" id="d1">
    我是一个div标签
    <p id="p1">你好</p>
</div>
<script>
    let d1 = document.getElementById("d1")
    console.log(d1.classList)
</script>
</body>

image-20240221232417801

创建和添加元素

document.createElement(tagName)

创建一个新的元素节点

// 创建一个div标签
document.createElement("div")
element.appendChild(childElement)

将一个子元素节点添加到父元素的末尾

<body>
<div class="ioi" id="d1">
    我是一个div标签
</div>
<script>
    // 创建一个div标签
    let dom1 = document.createElement("div")
	// 获取id为d1的标签
    let d1 = document.getElementById("d1")
    // 将新建的div标签加入d1末尾
    d1.appendChild(dom1)
    console.log(d1)
</script>
</body>

image-20240221233026399

element.insertBefore(newElement, referenceElement)

在父元素中的指定位置之前插入新的元素节点

<div class="ioi" id="parent">
    我是一个div标签
    <p id="p1">我是一个p标签</p>
</div>
<script>
    // 获取一个父标签
    let parent = document.getElementById("parent")
    // 创建一个p标签 并加入文本
	let p1 = document.createElement("p")
    p1.textContent = "我是子元素"
	// 获取父标签中的一个标签属性p
    let p2 = parent.querySelector("p")

   	// 在父标签中添加p1标签,并位于p2之前
    parent.insertBefore(p1,p2)
    console.log(parent)
</script>
</body>

image-20240222010637750

删除元素

element.removeChild(childElement)

从父元素中移除一个子元素节点

<body>
<div id="d1">你好
    <p id="p1">世界</p>
</div>
<script>
    // 获取父标签d1
    let d1 = document.getElementById("d1")
	// 获取子标签p1
    let p1 = document.getElementById("p1")
    // 删除d1中的p1
    d1.removeChild(p1)
    console.log(d1)
</script>
</body>

image-20240222013731225

element.remove()

从其父元素中删除该元素节点,与removeChild类似只是不过换了对象

<body>
<div id="d1">你好
    <p id="p1">世界</p>
</div>
<script>
    let p1 = document.getElementById("p1")
    p1.remove()
    console.log(d1)
</script>
</body>

image-20240222013839189

事件处理

element.addEventListener(event, callback)

绑定特定事件发生时要执行的函数

  • element 是要添加事件监听器的 DOM 元素
  • event 是一个字符串,表示要监听的事件类型,例如 "click"点击、"mouseover"鼠标、"keydown"键盘 等
  • callback 是一个函数,表示在事件触发时要执行的回调函数
<div id="d1">
    <button id="b1">点我删除文字</button>
    <p id="p1">你好世界</p>
</div>
<script>
    // 获取按钮b1
    let b1 = document.getElementById("b1")

	// 获取p1标签并删除
    function func1() {
        let p1 = document.getElementById("p1")
        p1.remove()
    }
	
	// 当b1被点击时触发func1方法
    b1.addEventListener("click", func1)
element.removeEventListener(event, callback)

解除对特定事件的绑定

<div id="d1">
    <button id="b1">点我删除文字</button>
    <p id="p1">你好世界</p>
</div>
<script>
    // 获取按钮b1
    let b1 = document.getElementById("b1")

	// 获取p1标签并删除
    function func1() {
        let p1 = document.getElementById("p1")
        p1.remove()
    }
	
	// 当b1被点击时触发func1方法,但是紧接着又删除监听时间,因此什么都不会发生
    b1.addEventListener("click", func1)
    b1.removeEventListener("click", func1)

element.removeEventListener(event, callback)

解除对特定事件的绑定

<div id="d1">
    <button id="b1">点我删除文字</button>
    <p id="p1">你好世界</p>
</div>
<script>
    // 获取按钮b1
    let b1 = document.getElementById("b1")

	// 获取p1标签并删除
    function func1() {
        let p1 = document.getElementById("p1")
        p1.remove()
    }
	
	// 当b1被点击时触发func1方法,但是紧接着又删除监听时间,因此什么都不会发生
    b1.addEventListener("click", func1)
    b1.removeEventListener("click", func1)

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

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

相关文章

自定义神经网络二之模型训练推理

文章目录 前言模型概念模型是什么&#xff1f;模型参数有哪些神经网络参数案例 为什么要生成模型模型的大小什么是大模型 模型的训练和推理模型训练训练概念训练过程训练过程中的一些概念 模型推理推理概念推理过程 总结 前言 自定义神经网络一之Tensor和神经网络 通过上一篇…

Java中PDF文件传输有哪些方法?

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…

Redis 多规则限流和防重复提交方案实现

Redis 如何实现限流的&#xff0c;但是大部分都有一个缺点&#xff0c;就是只能实现单一的限流&#xff0c;比如 1 分钟访问 1 次或者 60 分钟访问 10 次这种&#xff0c; 但是如果想一个接口两种规则都需要满足呢&#xff0c;项目又是分布式项目&#xff0c;应该如何解决&…

飞天使-linux操作的一些技巧与知识点7-devops

文章目录 简述devopsCICD 简述devops 让技术团队&#xff0c;运维&#xff0c;测试等团队实现一体式流程自动化 进阶版图 CICD 持续集成&#xff0c; 从编译&#xff0c;测试&#xff0c;发布的完成自动化流程 持续交付&#xff0c;包含持续集成&#xff0c;并且将项目部署…

2023年总结与2024展望

今天是春节后上班第一天&#xff0c;你懂的&#xff0c;今天基本上是摸鱼状态&#xff0c;早上把我们负责的项目的ppt介绍完善了一下&#xff0c;然后写了一篇技术文章&#xff0c;《分布式系统一致性与共识算法》。接着就看了我近几年写的的年度总结&#xff0c;我一般不会在元…

K线实战分析系列之八:十字星——容易识别的特殊形态

K线实战分析系列之八&#xff1a;十字星——容易识别的特殊形态 一、十字启明星和十字黄昏星二、弃婴底部形态和弃婴顶部形态三、总结十字启明星和十字黄昏星形态的要点 一、十字启明星和十字黄昏星 当开盘价与收盘价极为接近的时候&#xff0c;当期的K线就呈现为一根十字线&am…

01|Mysql底层存储引擎

1. 聚集索引&#xff08;聚簇&#xff09;与非聚集索引 1.1 聚集索引 索引和数据存储在一起。叶子节点存储了完整的数据记录&#xff1b; 1.2 非聚集索引 MyISAM存储引擎就是非聚集索引&#xff0c;索引和数据文件是分开存储的。索引在MYI文件中&#xff0c;数据在MYD文件中…

蓝桥杯-数字三角形

原题链接&#xff1a;用户登录 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;你的任务就是找到最大的和 (路径上的每一步只可沿左斜线向下或右斜线向下走)。 输入描述 输入的第…

普中51单片机学习(8*8LED点阵)

8*8LED点阵 实验代码 #include "reg52.h" #include "intrins.h"typedef unsigned int u16; typedef unsigned char u8; u8 lednum0x80;sbit SHCPP3^6; sbit SERP3^4; sbit STCPP3^5;void HC595SENDBYTE(u8 dat) {u8 a;SHCP1;STCP1;for(a0;a<8;a){SERd…

Jmeter分布式测试必踩坑,全部帮你排雷

在jmeter分布式环境部署上&#xff0c;有很同学都遇到了不少问题&#xff0c;就算是看过安装教程&#xff0c;也会在实际操作的时候一脸懵&#xff0c;经常的状态是就是&#xff1a;眼睛会了手不会。 所以我们把大家容易出问题的地方总结出来&#xff0c;一起来看看吧&#xff…

5个免费文章神器,用来改写文章太方便了

在当今信息爆炸的时代&#xff0c;内容创作和编辑是网络世界中至关重要的环节。然而&#xff0c;有时候我们可能会遇到一些内容需要进行改写或者重组的情况。为了提高效率&#xff0c;让这一过程更加顺畅&#xff0c;我们可以借助一些免费的文章神器来帮助我们完成这一任务。下…

板块一 Servlet编程:第七节 ServletContext对象全解与Servlet三大域对象总结 来自【汤米尼克的JAVAEE全套教程专栏】

板块一 Servlet编程&#xff1a;第七节 ServletContext对象全解与Servlet三大域对象总结 一、什么是ServletContext对象二、获取ServletContext对象及常用方法&#xff08;1&#xff09;获取 ServletContext 对象&#xff08;2&#xff09;ServletContext对象提供的方法 三、se…

pytorch自定义数据集分类resnet18

# 文件结构为&#xff1a; # |--- data # |--- dog # |--- dog1_1.jpg # |--- dog1_2.jpg # |--- cat # |--- cat2_1.jpg # |--- cat2_2.jpg import torch import torchvision import torchvision.transforms as transforms import torch.nn as nn import to…

【软件测试面试】要你介绍项目-如何说?完美面试攻略...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、测试面试时&am…

UI风格汇:扁平化风格来龙去脉,特征与未来趋势

Hello&#xff0c;我是大千UI工场&#xff0c;设计风格是我们新开辟的栏目&#xff0c;主要讲解各类UI风格特征、辨识方法、应用场景、运用方法等&#xff0c;本次带来的扁平化风格的解读&#xff0c;有设计需求&#xff0c;我们也可以接单。 一、什么是扁平化风格 扁平化风格…

C# EF Core迁移数据库

现象&#xff1a; 在CodeFirst时&#xff0c;先写字段与表&#xff0c;创建数据库后&#xff0c;再添加内容 但字段与表会变更&#xff0c;比如改名删除增加等 需求&#xff1a; 当表字段变更时&#xff0c;同时变更数据库&#xff0c;执行数据库迁移 核心命令 Add-Migrat…

陪诊小程序:温暖您的就医之路,让关怀触手可及

随着社会的进步和科技的发展&#xff0c;人们对于医疗健康的需求日益增长。然而&#xff0c;在繁忙的生活节奏中&#xff0c;许多人在面对就医时却面临着无人陪伴的困境。为了解决这一问题&#xff0c;陪诊小程序应运而生。 陪诊小程序是一种便捷、高效、人性化的医疗服务应用…

9-pytorch-现有模型使用及修改

b站小土堆pytorch教程学习笔记 1 使用ImageNet测试模型vgg16 train_datatorchvision.datasets.ImageNet(dataset/ImageNet,trainTrue ,downloadTrue ,transformtorchvision.transforms.ToTensor())代码运行报错&#xff1a;ImageNet数据集过大&#xff0c;导致现在无法公开访问…

聊聊 Go 边界检查消除

前言 在这篇文章中碰巧看到了Go边界检查消除相关的讨论. 我也借此简单聊聊. 有这样一段代码, 非常简单, 就是一段求向量点积的程序: func sum(a, b []int) int {if len(a) ! len(b) {panic("must be same len")}ret : 0for i : 0; i < len(a); i {ret a[i] * …

SAM轻量化的终点竟然是RepViT + SAM

本文首发&#xff1a;AIWalker&#xff0c;欢迎关注~~ 殊途同归&#xff01;SAM轻量化的终点竟然是RepViT SAM&#xff0c;移动端速度可达38.7fps。 对于 2023 年的计算机视觉领域来说&#xff0c;「分割一切」&#xff08;Segment Anything Model&#xff09;是备受关注的一项…