首页 > 编程语言 >JavaScript-WebAPI

JavaScript-WebAPI

时间:2024-07-02 23:57:23浏览次数:27  
标签:WebAPI box 元素 const 对象 JavaScript document 属性

文章目录

JS组成

JavaScript的组成:

  • ECMAScript:
    • 规定了js基础语法核心知识。
    • 比如:变量、分支语句、循环语句、对象等等。
  • Web APIs :
    • DOM 文档对象模型, 定义了一套操作HTML文档的API。
    • BOM 浏览器对象模型,定义了一套操作浏览器窗口的API。

在这里插入图片描述

什么是 webApis 和API

  1. web APIs 包含:
    • DOM 文档对象模型:使用 javaScript 操作页面文档
    • BOM 浏览器对象模型:使用 javaScript 操作浏览器
  2. **web APIs **作用:使用 javaScript 去操作页面文档和浏览器。
  3. 接口:无需关心内部如何实现,程序员只需要调用就可以很方便实现某些功能。
  4. API:应用程序接口(Application Programming Interface)
  5. API 作用:开发人员使用 javaScript 提供的接口操作网页元素浏览器
    在这里插入图片描述

DOM 简介

  • DOM:(Documenet Object Model – 文档对象模型)
  • 作用:DOM 用来操作网页文档(标签),开发网页特效和实现用户交互。
  • 核心思想:就是把网页内容当作对象来处理,通过对象的属性方法对网页内容操作。
    在这里插入图片描述

document 对象

  • 是 DOM 里提供的一个对象,是 DOM 顶级对象。
  • 作为网页内容的入口
  • 所以它提供的属性和方法都是用来访问操作网页内容的。

获取 DOM 对象

利用css选择器来获取DOM元素

  • 语法

    const box = document.querySelector('css选择器')
    
  • 参数:包含一个或多个有效的css选择器字符串

  • 返回值:CSS选择器匹配的第一元素对象。如果没有匹配到,则返回null。

<div class="box">我是一个盒子</div>
<p class="box tit">我是一个p标签
<span>123</span>
</p>
<script>
    //通过css选择器获取元素
    //选择指定css选择器的第一个元素
    //数组和对象 最好使用 const 声明
    const box = document.querySelector('.box')
    const p = document.querySelector('p')
    const tit = document.querySelector('.box.tit') //交集
    const span = document.querySelector('.tit span') //后代
    console.log(tit)  //只能单纯输出内容
    console.dir(box)   //用来输出对象格式数据
</script>

选择指定css选择器的所有元素

  • 语法

    const lis = document.querySelectorAll('css选择器')
    
  • 参数:包含一个或多个有效的css选择器字符串

  • 返回值

    • CSS选择器匹配的 NodeList -> 伪数组
    • 有长度有索引号的数组
    • 但没有 pop()、push()等数组方法
    • 利用 循环遍历(for)方式来获取每一个对象
<ul>
    <li>1</li>
	<li>2</li>
</ul>

<ol>
    <li>3</li>
	<li>4</li>
</ol>

<div>我是div</div>

<script>
    //获取多个元素
    //需求:所有 ol 的后代 li => ol li
    const lis = document.querySelectorAll('ol li')
    console.log(lis) //NodeList(2)  [li, li]  => 伪数组
    for (let i = 0; i < lis.length; i++) {
        console.log(lis[i])
    }

    const div = document.querySelectorAll('div')
    console.log(div)    //[div] =>获取的元素只有一个,那也是伪数组形式
</script>

其他获取DOM元素方法(了解)

语法实例描述
getElementByIddocumenet.getElementById(‘box’)根据id获取元素,单个
getElementsByTagNamedocument.getElementsByTagName(‘li’)根据标签名获取元素,伪数组
getElementsByClassNamedocument.getElementsByClassName(‘one’)根据类名获取元素,伪数组
getElementsByNamedocument.getElementsByName(‘uname’)根据name属性值获取元素,伪数组

操作元素内容

  • DOM对象可以操作页面标签,所以本质上就是操作DOM对象(增删改查)
  • 操作标签元素的内容的方式:
    • 对象.innerText 属性
    • 对象.innerHTML 属性

对象.innerText

  • 将文本内容添加/更新到任意标签位置
  • 显示纯文本,不解析标签
//获取元素
const box = document.querySelector('div')
//innerText
//获取内容 => 只获取文本
console.log(box.innerText)  //我是div
//设置内容
box.innerText = '<strong>新值</strong>'   //<strong>新值</strong>

对象.innerHTML

  • 将文本内容添加/更新到任意标签位置
  • 显示所有内容,解析标签
//获取元素
const box = document.querySelector('div')
//innerHTML
//获取内容 => 会把嵌套的标签获取到
console.log(box.innerHTML)  //<em>我是div</em>
//设置内容
box.innerHTML = '<strong>新值</strong>'   //新值 => 加粗后的

操作元素属性

操作元素常用属性

  • 可以通过DOM操作元素属性

  • 最常见的属性:hreftitlesrc

  • 语法

    对象.属性 = 值
    
  • 直接通过属性名修改

    <img src='./images/1.png' alt='波仔'>
    <script>
        //获取元素
        const img = document.querySelector('img')
        //操作元素属性
        //查
        console.log(img)
        //改
        img.src = './images/2.png'
        //增
        img.title = '我可爱不爱'
        //删
        img.alt = ''
    </script>
    

操作元素样式属性

还可以通过 DOM对象修改标签元素的样式属性

  • 比如通过 轮播图小圆点自动更换颜色 样式
  • 点击按钮可以滚动图片,这是移动的的位置 translateX 等等
    在这里插入图片描述
通过 style 属性操作元素样式
  • 语法:

    对象.style.样式属性 = 值
    
  • 练习

    <div class='box'>我是一个盒子</div>
    <script>
        const box = document.querySelector('.box')
        //修改元素样式
        box.style.fontSize = '20px'
        box.style.backgroundColor = 'pink'
    </script>
    

注意:

1.修改样式通过style属性引出

2.如果属性有-连接符,需要转换为小驼峰命名法

3.赋值的时候,需要的时候不要忘记加css单位

通过类名(className)操作元素样式-了解
  • 使用的原因:如果修改的样式比较多,直接通过style属性修改比较繁琐,我们可以通过借助于css类名的形式。

  • 核心:把多个样式放到css一个类中,然后把这个类添加到这个元素身上。

  • 语法:

    <style>
        .box {
            width: 200px;
            height: 200px;
            color: #8df;
            font-size: 30px;
            border: 1px solid red;
        }
    </style>
    <body>
        <div>文字描述</div>
    <script>
        //需求:通过 className属性 的形式设置样式
        const box = document.querySelector('div')
        box.className = 'box'
        console.log(box.className)
    </script>
    </body>
    

注意:

1.由于class是关键字, 所以使用className去代替

2.className是使用新值换旧值, 如果需要添加一个类,需要保留之前的类名

通过 classList 操作元素样式-推荐
  • 为了解决className 容易覆盖以前的类名,我们可以通过classList方式追加和删除类名。

  • 好处:不会影响已经存在的类名,是在原来的基础上添加。

  • 语法:

    //新增类名
    对象.classList.add('类名')
    //移除
    对象.classList.remove('类名')
    //切换 -> 有则删除,没有添加
    对象.classList.toggle('类名')
    //判断是否存在某个类名 -> 会返回一个布尔值 -> 存在true,不存在false
    对象.classList.contains('类名')
    
  • 练习

    <head>
        <title></title>
    <style>
        .nav {
            width: 200px;
            height: 200px;
            background-color: #8df;
            color: green;
        }
    .box {
        font-size: 300px;
        text-align: center;
        line-height: 300px;
        border: 1px solid pink;
    }
    </style>
    </head>
    <body>
        <div class='nav'>文字描述</div>
    	<script>
            //需求:利用 classList 追加、删除、切换、判断类名
            const div = document.querySelector('div')
            //1. 追加类名 -> 在原有的基础上,追加新类名
            div.classList.add('box')    //class="nav box"
            //2. 删除
            div.classList.remove('nav') //class="box"
            //3. 切换
            div.classList.toggle('nav') //class="box nav"
            //4. 判断是否存在某个类名
            console.log(div.classList.contains('abc'))  //false
            console.log(div.classList.contains('nav'))  //true
        </script>
    </body>
    
总结
  • 使用style的场景:修改的样式很少。
  • 使用classList(推荐)/className的场景:修改大量的样式。

操作表单元素属性

  • 表单很多情况,也需要修改属性,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框。

  • 正常的有属性有取值的跟其他的标签属性没有任何区别。

    //获取:DOM对象.属性
    //设置:DOM对象.属性 = 新值
    表单.value = '用户名'
    表单.type = 'passwird'
    
  • 表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示,比如实现禁用按钮,勾选按钮等。

  • 如果为 true 代表添加了该属性,如果是 false 代表移除了该属性。比如: disabledcheckedselected

<body>
    <input type='text' value='文本'>
    <br>
    <input type='password' value='12345'>
    <br>
    <input type='radio' checked>男
	<br>
    <button>按钮</button>
	 <br>
    <select name='' id=''>
        <option value='' >北京</option>
        <option value='' selected>上海</option>
    </select>
	<script>
        //操作表单属性
        //1. value属性 => 收集用户输入的值
        const uname = document.querySelector("[type='text']")
        //获取 对象.value
        // console.log(uname.value)
        //设置 对象的value属性 对象.value = 值
        uname.value = 'niuniu'

        //2. type属性 => 规定input的类型
        const pwd = document.querySelector("[value='12345']")
        //获取
        console.log(pwd.type)
        //设置 把password 换成 text
        pwd.type = 'text'

        //3. 修改 单选或复选按钮的选中 checked
        const radio = document.querySelector("[type='radio']")
        //获取
        console.log(radio.checked)
        //设置 false是不选中 true是选中
        radio.checked = false //不选中

        //4. 禁止使用表单按钮
        const btn = document.querySelector('button')
        //获取
        console.log(btn.disabled) //false
        //设置
        btn.disabled = true //禁止使用按钮

		//5. 判断当前 option 是不是选中项
        const option = document.querySelector('select option:first-child')
        console.log(option.selected) //false 上海
        //设置
        option.selected = true //选中北京
</script>
</body>

自定义属性

  1. 标准属性:标签天生自带的属性 比如class、id、title等, 可以直接使用点语法操作比如:对象.title

  2. 自定义属性:

    • 在html5中推出来了专门的 data- 自定义属性

    • 使用场景:通过自定义属性可以存储数据,后期可以使用这个数据

    • 在标签上一律以 data- 开头

    • 在DOM对象上一律以 dataset 对象方式获取,对象.dataset

      在这里插入图片描述

<body>
    <!-- 设置:在标签上,使用 data-名字="值" -->
        <div data-index='0' data-id='box'>niuniu</div>
	<script>
            //自定义属性 => 保存某些数据,后续使用
            const div = document.querySelector('div')
            //获取: 对象.dataset => 对象集合
            console.log(div.dataset) //{index: '0', id: 'box'}
            //获取属性值 对象.属性名
            console.log(div.dataset.index)  //0
    </script>
</body>

标签:WebAPI,box,元素,const,对象,JavaScript,document,属性
From: https://blog.csdn.net/m0_74399244/article/details/140130560

相关文章

  • WebAPI项目框架仓储模式+导入SqlSuag
    仓储(Respository)是对数据库访问的一个封装解决方案新建Respository文件夹,新建类库Web.Core.IRepository,Web.Core.Repository解决方案新建Services文件夹,新建类库Web.Core.IServices,Web.Core.Services在类库Web.Core.Model下面新建Entity文件夹SqlSugar是国人开发者开发的一......
  • WebAPI项目框架JWT权限验证
    JWT是什么?校验逻辑?授权过程?这里就不过多的阐述了,直接上代码在appsettings.json中配置jwt参数的值SecretKey必须大于16个字符1{2"Logging":{3"LogLevel":{4"Default":"Information",5"Microsoft.AspNetCore":"Warni......
  • WebAPI项目框架新建读取配置文件帮助类
    在.netcorewebapi项目中,我们会把配置信息同意放置在appsettings.json中,通过新建读取帮助类,更加简单的读取配置信息。新建公共类库文件夹Common,新建公共类库Web.Core.Common在Web.Core.Common类库下新建Helper文件夹,新建AppSettings帮助类 .NetCore6.0WebAPI项目框架搭......
  • 大学生HTML期末大作业——HTML+CSS+JavaScript运动网站(田径)
    HTML+CSS+JS【运动网站】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计......
  • 大学生HTML期末大作业——HTML+CSS+JavaScript购物商城(Oppo)
    HTML+CSS+JS【购物商城】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计......
  • JavaScript 中删除数组元素
    在JavaScript中,没有像Java的ArrayList中的remove方法那样直接删除指定元素的方法,删除指定下标的数组元素可以通过几种方式实现方法一:使用 splice() 方法splice()方法可以在数组中添加或删除元素,并返回被删除的元素。letarr=[1,2,3,4,5];letindexToRemove......
  • JavaScript 学习教程:从入门到精通
    JavaScript学习教程:从入门到精通JavaScript是网页开发过程中不可或缺的一部分,无论你是初学者还是有一定基础的开发者,这篇教程将帮助你更深入地理解和运用JavaScript。本文将分为多个章节,涵盖JavaScript的基本概念、高级技术、常用库和框架,以及实际项目案例。目录Jav......
  • 【JavaScript脚本宇宙】打造完美用户体验:六大模态库全解析
    从美观到高效:六大模态库实战指南前言随着现代Web开发的不断进步和用户体验要求的提升,模态窗口(Modal)已成为网页设计中不可或缺的一部分。模态窗提供了一种直观而有效的方式来展示重要信息、提示用户操作或承载交互内容。本文将全面介绍六大流行的模态库,包括BootstrapModal......
  • CH01_初识JavaScript
    第1章:初识JavaScript编程语言本章目标了解为什么要学习JavaScipt编程语言掌握JS的基本结构掌握JS的执行原理掌握JS的基本语法结构掌握JS的几种输出方式掌握JS的注释课程回顾什么是HTML?HTML的标签分为块级元素和行级元素,他们的区别是什么?HTML的表单元素有那些?HTML的列表......
  • 【JavaScript脚本宇宙】从发票生成到网页保存:JavaScript PDF库指南
    探索顶级JavaScriptPDF库:高效处理PDF文档的利器前言随着数字化信息的普及和无纸化办公理念的深入,PDF文档因其高度兼容性和稳定性成为了存储、分享和展示信息的首选格式。为了满足不同用户对PDF文档生成和处理的需求,各类功能强大的JavaScript库应运而生。这篇文章将详细介......