Web前端 JavaScript笔记4

news2024/11/16 9:34:40

1、元素内容

属性名称说明
元素名.innerText输出一个字符串,设置或返回元素中的内容,不识别html标签
元素名.innerHTML输出一个字符串,设置或返回元素中的内容,识别html标签
元素名.textContent设置或返回指定节点的文本内容,不识别html标签

方法:

元素名.document.write():向文档写入指定内容。

元素名.document.writeln():向文档写入指定内容并换行。

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            height: 100px;
            width: 250px;
            font-size: 20px;
            line-height: 100px;
            text-align: center;
            display: inline-block;
        }
        .it{
            background-color: aqua;
        }
        .ih{
            background-color: red;
            color: white;
        }
        .tc{
            background-color: yellow;
        }
        
    </style>
</head>
<body>
    
    <div class="it">innerText</div>
    <div class="ih"></div>
    <div class="tc">textContent</div>
    <script>
        let it=document.querySelector(".it")
        let ih=document.querySelector(".ih")
        let tc=document.querySelector(".tc")
        it.innerText='<i>innerText</i>'
        ih.innerHTML='<i>innerHTML</i>'//为他们增加倾斜效果
        tc.textContent='<i>TextContent</i>'

    </script>
</body>
</html>

我们发现只有inner HTML识别倾斜标签 

 写入文档就是写入网页里

<body>
    <h2>注意write()方法不会在每个语句后面新增一行:</h2>
    <pre>
    <script>
    document.write("哈哈哈哈哈哈");
    document.write("666666");
    </script>
    </pre>
    <h2>注意writeln()方法在每个语句后面新增一行:</h2>
    <pre>
    <script>
    document.writeln("哈哈哈哈哈哈");
    document.writeln("666666");
    </script>
    </pre>
</body>

 

练习 

<body>
    <div></div>

    <script>
        let arr = ["zhangsan", "lisi", "王麻子", "王总"]
        function get_random(n, m) {
            return Math.floor(Math.random() * ((m - n) + 1)) + n
        }
        // 1、获取元素
        const box = document.querySelector("div")
        // 2、产生随机数
        let random = get_random(0, arr.length - 1)

        // 3、更换div中的内容
        box.innerText = arr[random]

    </script>

</body>

 


 

2、更改属性

对象.属性 = 值

<body>
    <form action="">
        <input type="button" name="" id="">
    </form>
    <script>
        const ipt = document.querySelector("input")
        ipt.type = "password"
    </script>
</body>

本来是按钮,但是属性值被改成密码了 

 

  •  像是checked这样的属性名=属性值的属性,js在进行赋值时,通过true/false去控制属性值
  • 比如说下面的例子,男的选择按钮我在input属性里用checked默认选中,女孩相反,利用更改属性值,使女的选择按钮默认选中,男相反
<body>
    <form action="">
        <input type="checkbox" checked name="sex" value="nan">男
        <input type="checkbox" name="sex" value="nv">女
    </form>
    <script>
     document.querySelector("input[value='nv']").checked="ture"
    document.querySelector("input[value='nan']").checked=false
    </script>
</body>

 


 

3、更改style样式

①、对象.style.样式 = ""

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
        .box{
            width: 200px;
            height: 200px;
            background-color: greenyellow;
            border: 3px solid yellow;
            border-radius: 50%;
        }
</style>
</head>
<body>
  <div class="box"></div>
   <script>
        // 1、获取元素
        const b = document.querySelector(".box")
        // 2、对象.style.样式 = ""
        b.style.backgroundColor="red"
   </script>
</body>
</html>

更改了属性,使原来绿色的背景色,变成了红色 

 ②、利用className=" "

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
      div{
            width: 100px;
            height: 100px;
            background-color: greenyellow;
            border-radius: 50%;
        }
        .box{
            width: 200px;
            height: 200px;
            background-color: aqua;
            border-radius: 50%;
        }
</style>
</head>
<body>
  <div></div>
   <script>
        // 1、获取元素
        const b = document.querySelector("div")
        // 2、classname
        b.className="box"
   </script>
</body>
</html>

利用ClassName为div盒子添加类名,从而更改样式 

③、利用ClassList(" ")

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
      div{
            width: 100px;
            height: 100px;
            background-color: yellow;
            border-radius: 30%;
        }
        .box{
            width: 200px;
            height: 200px;
            background-color: aqua;
            border-radius: 30%;
        }
        .bb{
            border:5px dashed red;
        }
</style>
</head>
<body>
  <div class="bb"></div>
   <script>
        // 1、获取元素
        const b = document.querySelector("div")
        // 2、classList
        b.classList.add("box")
        b.classList.remove("bb")
   </script>
</body>
</html>

利用.bb类名为盒子设置红色边框, 使用 b.classList.remove("bb"),移除.bb类名

利用b.classList.add("box")增添box类名,改变背景色与大小的属性

补充:

如果类名存在,则移除,如果不存在,则添加

         box.classList.toggle("box1")


 

4、查找节点

 对象.属性

属性说明
parentNode

可返回某节点的父节点。如果指定的节点没有父节点则返回 null 。

children

children 属性返回元素的子元素的集合,是一个 HTML收集 对象。

提示: 根据子元素在元素中出现的先后顺序进行排序。使用 HTML收集对象的 length属性获取子元素的数量,然后使用序列号(index,起始值为0)访问每个子元素。

childNodes

childNodes 属性返回包含被选节点的子节点的 NodeList。

提示: 如果选定的节点没有子节点,则该属性返回不包含节点的 NodeList。

nextElementSibling

返回指定元素之后的下一个兄弟元素

previousElementSibling

返回指定元素的前一个元素。

nextSibling

返回选定元素的下一个同级节点

children 属性与 childNodes属性的差别:

  • childNodes 属性返回所有的节点,包括文本节点、注释节点;
  • children 属性只返回元素节点;

nextSibling 属性与 nextElementSibling 属性的差别:

  • nextSibling 属性返回元素节点之后的兄弟节点(包括文本节点、注释节点);
  • nextElementSibling 属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点);
  <script>
        console.log(1)
        console.log(document.querySelector(".son").parentNode)
        console.log(2)
        console.log(document.querySelector(".father").children)
        console.log(3)
        console.log(document.querySelector(".father").childNodes)

        // 查找兄弟jiedian
        console.log(4)
        console.log(document.querySelector(".son").nextElementSibling)
        console.log(5)
        console.log(document.querySelector(".son1").previousElementSibling)
        console.log(6)
        console.log(document.querySelector(".son").nextSibling)
    </script>

 


 

5、事件监听

①、事件源.on+事件类型=匿名函数

同一个事件源,后面注册的事件会对前面注册的事件进行覆盖

<body>
    <button>点击</button>
    <div></div>
    <script>
        const button = document.querySelector("button")
        const box = document.querySelector("div")
        button.onclick = function () {
            box.style.backgroundColor = "yellow"
        }
         button.onclick = function () {
            box.innerHTML='<b>6666</b>'
        }
    </script>

</body>
没有加 第二个功能块 的时候的时候加 上第二个功能块之后

去除监听:

事件源.on+事件类型=null

②、事件源.addEventListener("事件类型",行为,【是否捕获】)

是否捕获是true或者false,选填

方法为元素附加事件处理程序而不会覆盖已有的事件处理程序。

<body>
    <button>点击</button>
    <div></div>
    <script>
        // 事件监听    不会覆盖
        button.addEventListener("click",()=>{
            box.style.backgroundColor = "yellow"
         }, true)
        button.addEventListener("click",()=>{
            box.innerHTML='<b>6666</b>'
         }, true)
</script>
</body>
没有加 第二个功能块 的时候的时候加 上第二个功能块之后

去除监听:

事件源.removeEventListener("事件", 行为,【是否捕获】)

6、练习

<!DOCTYPE html>
<html>
  <meta charset="UTF-8" />
  <title></title>
  <style type="text/css">
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      list-style: none;
    }

    .wrapper {
      width: 1000px;
      height: 475px;
      margin: 0 auto;
      margin-top: 100px;
    }

    .tab {
      border: 1px solid #ddd;
      border-bottom: 0;
      height: 36px;
      width: 320px;
    }

    .tab li {
      position: relative;
      float: left;
      width: 80px;
      height: 34px;
      line-height: 34px;
      text-align: center;
      cursor: pointer;
      border-top: 4px solid #fff;
    }

    .tab span {
      position: absolute;
      right: 0;
      top: 10px;
      background: #ddd;
      width: 1px;
      height: 14px;
      overflow: hidden;
    }

    .products {
      width: 1002px;
      border: 1px solid #ddd;
      height: 476px;
    }

    .products .main {
      float: left;
      display: none;
      width: 1000px;
      height: 480px;
    }

    .products .main:nth-child(1) {
      background-color: pink;
    }

    .products .main:nth-child(2) {
      background-color: rgb(236, 5, 44);
    }

    .products .main:nth-child(3) {
      background-color: rgb(59, 13, 228);
    }

    .products .main:nth-child(4) {
      background-color: rgb(49, 216, 7);
    }

    .products .main.active {
      display: block;
    }

    .tab li.active {
      border-color: red;
      border-bottom: 0;
    }
  </style>
</head>

<body>
  <div class="wrapper">
    <ul class="tab">
      <li class="tab-item active">国际大牌<span>◆</span></li>
      <li class="tab-item">国妆名牌<span>◆</span></li>
      <li class="tab-item">清洁用品<span>◆</span></li>
      <li class="tab-item">男士精品</li>
    </ul>
    <div class="products">
      <div class="main active">

      </div>
      <div class="main">

      </div>
      <div class="main">
      </div>
      <div class="main">
      </div>
    </div>
  </div>

  <script>
    // 获取元素对象
    let lis = document.querySelectorAll(".tab .tab-item")
    let divs = document.querySelectorAll(".products .main")
    //遍历
    for (let i = 0; i < lis.length; i++) {
      // li添加事件监听
      lis[i].addEventListener("click", function () {
  
        document.querySelector(".tab .active").classList.remove("active")
        lis[i].classList.add("active")

        document.querySelector(".products .active").classList.remove("active")
        divs[i].classList.add("active")

      })
    }

  </script>

</body>

</html>

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

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

相关文章

基于springboot实现购物推荐网站系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现购物推荐网站系统演示 摘要 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了东大每日推购物推荐网站的开发全过程。通过分析企业对于东大每日推购物推荐网站的需求&#xff0c;创建了一个计算机管…

vue快速入门(二十三)侦听器的简单写法与完整写法

注释很详细&#xff0c;直接上代码 上一篇 新增内容 侦听器简单写法侦听对象或属性侦听器完整写法侦听对象&#xff08;可选深度侦听&#xff09; 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name…

基于单片机和安卓平台的移动物联网应用开发实训系统设计

摘要:文章介绍了一种采用单片机和安卓移动设备构建移动物联网应用开发实训系统的方法。并基于该系统完成了实训的项目设计,实现了通过手机远程获取单片机上的传感器数据以及远程控制单片机上的开关设备等典型的物联网应用。 关键词:单片机;传感器;安卓应用开发 1 物联网应…

【MATLAB源码-第189期】基于matlab的人工蜂群优化算法(ABC)无人机三维路径规划,输出做短路径图和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 Artificial Bee Colony&#xff08;ABC&#xff09;算法是一种模仿蜜蜂觅食行为的优化算法&#xff0c;它通过模拟蜜蜂群体的社会结构和行为来解决数学优化问题。本文将详细介绍ABC算法的基本原理、算法流程、以及在实际应用…

第十五届蓝桥杯省赛C/C++大学B组真题及赛后总结

目录 个人总结 C/C 组真题 握手问题 小球反弹 好数 R 格式 宝石组合 数字接龙 爬山 拔河 ​编辑 再总结及后续规划 个人总结 第一次参加蓝桥杯&#xff0c;大二&#xff0c;以前都在在学技术&#xff0c;没有系统的学过算法。所以&#xff0c;还是花了挺多时间去备…

政安晨:【深度学习神经网络基础】(七)—— 神经网络评估分类

目录 简述 评估分类概述 二值分类 多类分类 对数损失 多类对数损失 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指…

深入了解数据结构第四弹——排序(1)——插入排序和希尔排序

前言&#xff1a; 从本篇开始&#xff0c;我们就开始进入排序的学习&#xff0c;在结束完二叉树的学习之后&#xff0c;相信我们对数据在内存中的存储结构有了新的认识&#xff0c;今天开始&#xff0c;我们将进入排序的学习&#xff0c;今天来学习第一篇——插入排序 目录 什…

Python | Leetcode Python题解之第30题串联所有单词的子串

题目&#xff1a; 题解&#xff1a; class Solution:def findSubstring(self, s: str, words: List[str]) -> List[int]:res []m, n, ls len(words), len(words[0]), len(s)for i in range(n):if i m * n > ls:breakdiffer Counter()for j in range(m):word s[i j…

Oracle-实例重启导致其他实例不可访问!

问题背景&#xff1a; 用户报障生产一套11G的RAC集群&#xff0c;每个节点有5个数据库实例&#xff0c;其中一个实例由于ORA-00600错误引发实例异常重启&#xff0c;在该实例重启之后&#xff0c;同服务器上的其他4个实例均出现无法访问的情况&#xff0c;应用反馈出现ORA-1253…

C++初识

这里会对一些内容进行简单的提起&#xff0c;后面会详细讲解 一、注释 作用&#xff1a;在代码中加入一些说明和解释&#xff0c;方便自己或其他人阅读代码 两种格式&#xff1a; 1、单行注释&#xff1a; // 描述信息 通常放在一行代码的上方&#xff0c;或者一条语句的末…

Java代码基础算法练习-删除空格-2024.04.15

任务描述&#xff1a; 请从键盘获取一串字符&#xff0c;然后实现删除字符串空格的操作。 任务要求&#xff1a; 代码示例&#xff1a; 这里提供两种方法 1.使用正则表达式&#xff08;推荐&#xff09; // 用正则表达式的方法 System.out.println("删除空格后的的字符…

嵌入式MCU BootLoader开发配置详细笔记教程

目录 一、BootLoader基础 二、BootLoader原理及配置 三、BootLoader程序 bootloader.h bootloader.c 四、Application1 用户程序 application1.h application1.c 五、Application2 用户程序 application2.h 六、程序运行效果 七、工程文件Demo 一、BootLoader基础 …

FRR-NET:用于弱光图像增强的快速重参数残差网络

很久之前写的文章&#xff0c;前两天才见刊。项目的具体代码因项目原因无法公布&#xff0c;我自己重新训练了一个版本&#xff08;包含两类预训练模型&#xff09;&#xff0c;供初学者参考。本文主要为AB式创新。 文章链接&#xff1a;paper 代码链接&#xff1a;GitHub || …

使用脚本部署openstack平台

两台虚拟机&#xff0c;compute和controller 建议两台虚拟机都配置&#xff0c;内存4G&#xff0c;硬盘60G&#xff0c;网络要在虚拟机设置这里添加一个网络适配器&#xff0c;第一个是主机模式192.168.10.0&#xff0c;第二个是NAT模192.168.20.0&#xff0c; 可以在此处了解一…

vue源码解析——diff算法/双端比对/patchFlag/最长递增子序列

虚拟dom——virtual dom&#xff0c;提供一种简单js对象去代替复杂的 dom 对象&#xff0c;从而优化 dom 操作。virtual dom 是“解决过多的操作 dom 影响性能”的一种解决方案。virtual dom 很多时候都不是最优的操作&#xff0c;但它具有普适性&#xff0c;在效率、可维护性之…

C++ 之 【类与对象】从入门到精通一条龙服务 最终篇(static成员、友元、匿名对象。。。)

&#x1f4b4;到用时方恨早&#xff0c;白首方悔挣的少 车到山前没有路&#xff0c;悬崖勒马勒不住 一、再谈构造函数 1.构造函数体赋值 2.初始化列表 3.explicit关键字 二、Static成员 1.概念 2.特性 三、友元 1.友元函数 2.友元类 四、内部类 五、匿名对象 六、…

【uniapp】vscode安装插件、ts校验、允许json文件注释

1、vscode安装的插件&#xff1a; uni-create-viewuni-hlperuniapp小程序扩展 2、ts校验 安装插件&#xff1a; pnpm i -D types/wechat-miniprogram uni-helper/uni-app-types配置tsconfig.json {"extends": "vue/tsconfig/tsconfig.json","compi…

向量 | vector;标量 | scalar;矩阵;张量

目录 什么是标量 什么是向量? 向量的3种表达方式 向量的矩阵表示 什么是矩阵 什么是张量 什么是标量 标量只有大小概念,没有方向的概念。通过一个具体的数值就能表达完整。 比如:重量、温度、长度、提及、时间、热量等都数据标量。

gzip,bzip2,xz,tar-读书笔记(九)

gzip 将文件进行压缩 在Linux系统中&#xff0c;gzip 是一个压缩和解压文件的命令工具。它使用LZ77压缩算法及霍夫曼编码&#xff08;Huffman Coding&#xff09;来压缩文件&#xff0c;通常用来减少文件的大小&#xff0c;以节约磁盘空间或减少网络传输的时间。 gzip 命令的…

SpringBoot集成JWT快速入门Demo

目录 1. 概述 2. JWT的请求流程 3. Session认证与JWT认证的区别 4 JWT优缺点 4.1 优点 4.2 缺点 5. 快速入门 5.1 创建工程 5.2 导入依赖 5.3 添加配置文件 5.4 添加Swagger2配置类 5.5 添加JWT工具类 5.6 添加entity、service、controller类 5.7 添加拦截器类 …