【javascript】DOM 案例

news2025/1/2 2:56:25

点击查看密码

:就是把type等于password改为text即可:

<!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>Document</title>
</head>
<body>
    <input type="password" id="pass_word">
    <button id="btn1">点击查看密码</button>
</body>
<script>
    var pass_word=document.getElementById("pass_word")
    var btn1=document.getElementById("btn1")
btn1.onclick = function() {
    console.log(pass_word.type)
    if (pass_word.type == "password"){
        pass_word.type="text"
    }else{
        pass_word.type="password"
    }
}
</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>Document</title>
    <style>
        li{
            list-style: none;
        }
    </style>
</head>
<body>
    <input type="checkbox"  id="all">全选||全不选
<hr>
<ul>
    <li>
        <input type="checkbox">商品1
    </li>
    <li>
        <input type="checkbox">商品2
    </li>
    <li>
        <input type="checkbox">商品3
    </li>
    <li>
        <input type="checkbox">商品4
    </li>
</ul>
</body>
<script>

var all_=document.getElementById("all")
var lis=document.querySelectorAll("li input")
all_.onclick=function() {
    console.log(all_.checked)
    for (var i = 0; i < lis.length;i++){
        // 当点击勾选【全选】时,就把true赋给li input 
        lis[i].checked=all_.checked;
    }
}
// 当li input都勾选时,【全选】自动勾选

for (var i = 0; i < lis.length; i++){
    lis[i]=onclick=hander
    }
    function hander(){
        var count=0;
        for (var i = 0; i < lis.length; i++){
            // for判断每一个是否被勾选,被勾选,则count++
            if (lis[i].checked==true) {count++}
        }
        if (count===lis.length){
            all_.checked=true;
        }else {
            all_.checked=false;
        }
    }


</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>Document</title>
    <style>
        li{
            list-style: none;
        }
        li{
            overflow: hidden;
        }
        li img{
            float:left;
            width:150px;
        }
    </style>
</head>
<body>
    <ul>
    <li>
        <img src="img/1 (1).jpeg">
        <h3>aespa</h3>
        <p>观众评分:10.0</p>
    </li>
    
    </ul>
</body>
<script>
    var filmList=[
        {
          url: "img/1 (1).jpeg",
          title:"aespa",
          grade:"10.0"  
        },
        {
            url: "img/1 (2).jpeg",
          title:"aespa",
          grade:"9.0"  
        },
        {
            url: "img/1 (3).jpeg",
          title:"aespa",
          grade:"8.0"  
        }
    ]
// map() 方法返回一个新数组,
//数组中的元素为原始数组元素调用函数处理后的值。
// map() 方法按照原始数组元素顺序依次处理元素.

//${item.url}:这样就可以转变为变量处理
    var filmItems=filmList.map(function(item){
        return  `<li>
        <img src="${item.url}">
    
        <h3>${item.title}</h3>
        <p>${item.grade}</p>
    </li>`
    })
//  join() 方法用于把数组中的所有元素转换一个字符串。
// 元素是通过指定的分隔符进行分隔的.
    console.log(filmItems.join(""))

    var oul=document.querySelector("ul")
    oul.innerHTML = filmItems.join("")
</script>
</html>

在这里插入图片描述

选项卡:

点击哪个就把active赋给谁,然后把另一个取消

<!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>选项卡</title>
</head>
<style>
    ul{
        display: flex;
        list-style: none;

    }
    li{
        height: 50px;
        line-height: 50px;
        flex: 50%;
        text-align: center;
        cursor: pointer;
    }
    .active{
        color: crimson;
        border-bottom: 1px solid red;
    }
</style>
<body>
    <ul>
        <li class="active" id="item1">即将上映</li>
        <li id="item2">限时免费</li>
    </ul>
</body>
<script>
    item1.onclick = function(){
        item1.classList.add("active")
        item2.classList.remove("active")


    }
    item2.onclick = function(){
        item2.classList.add("active")
        item1.classList.remove("active")
    }
</script>
</html>

在这里插入图片描述

tab栏切换

<!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>Document</title>
    <!-- 后期可自由添加选项卡 -->
    <style>
        *{
            padding:0;
            margin:0;
        }
       
        ul{
            list-style: none;
            padding-left: 0;
        }
        .header{
            display: flex;
            width:752px;
        }
        .header li{
            flex:1;
            height:50px;
            line-height: 50px;
            text-align: center;
            border: 1px solid black;
         

        }
        .box1 li{
            
            left:0; top:0;
            width: 751px;
            height:500px;
            background-color: palevioletred;
            display:none;
            border: 1px solid black;

        }
        .box1 li img{
           
            height: 500px;
            /* margin-left: 100px; */
        }
        .header .active{
            background-color: aqua;
        }
        .box1 .active{
            display: block;
        }
    </style>
</head>
<body>
        <ul class="header">
            <li class="active"> 1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
        </ul>
        <ul class="box1">
            <li class="active"><img src="img/2 (1).jpeg"></</li>
            <li><img src="img/2 (2).jpeg"></li>
            <li><img src="img/2 (3).jpeg"></li>
            <li><img src="img/2 (4).jpeg"></li>
            <li><img src="img/2 (5).jpeg"></li>
            <li><img src="img/2 (6).jpeg"></li>
        </ul>
</body>
<script>
    var oHeaderItems=document.querySelectorAll(".header li")
    var obox1Items=document.querySelectorAll(".box1 li")
    // 选中上面的选项
    for(var i=0;i<oHeaderItems.length; i++){
        // 自定义属性
        oHeaderItems[i].dataset.index=i;
        // 获取自身上的属性
        oHeaderItems[i].onclick = handler  
        }
    function handler(){
         //this.dataset.index这样可以实现点击哪一个锁定哪一个
        //  console.log(this.dataset.index)
         // 去掉其他选项的高亮显示,只保留自己
         var index=this.dataset.index;
         for(var m=0;m<oHeaderItems.length;m++){
            oHeaderItems[m].classList.remove("active");
            // 让下面的选项卡跟随上面的选项一起变化
            obox1Items[m].classList.remove("active");
         }
         oHeaderItems[index].classList.add("active");
         // 让下面的选项卡跟随上面的选项一起变化
         obox1Items[index].classList.add("active");

    }
  




</script>
</html>

在这里插入图片描述
在这里插入图片描述

动态删除

createElement:在JS中创建元素
appendChild:在HTML页面中添加进去
this.parentNode.remove():定向移除父节点

<!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>Document</title>
</head>
<body>
    <ul id="list">

    </ul>
</body>
<script>
    // 用JS创建一个列表,列表里面放入按钮,再把列表放入HTML中
    var arr=["111","222","333"];
    for(var  i=0;i<arr.length; i++){
        var oli=document.createElement("li")
        oli.innerHTML=arr[i]
        var button = document.createElement("button")
        oli.appendChild(button)
        button.innerHTML="delete"
        button.onclick=handler;
        list.appendChild(oli)
    }
    function handler(){
// console.log(this)
console.log(this.parentNode)
// this.parentNode
this.parentNode.remove()
    }
</script>
</html>

在这里插入图片描述

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

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

相关文章

电力系统强大的Gurobi 求解器的学习(PythonMatlab)

到底有多强大&#xff0c;看看就知道&#xff0c;必须&#x1f44d;&#x1f44d;&#x1f44d;&#xff1a; 目录 1 概述 2 算例理解【Python】 2.1 算例1——详细入门 2.2 算例2——一般线性规划问题 2.3 算例3——非凸问题 3 算例升级【Matlab】 3.1 模型 3.2 电力系统…

Python2.x 与 3​​.x 版本到底有啥区别?

嗨害大家好鸭&#xff01;我是小熊猫~ 今天给大家带来一点小干货~ 很多人对于python的版本有些许疑问&#xff0c; 今天就来给大家说说看~ Python学习资料电子书点击此处跳转文末名片 Python 的 3​​.0 版本&#xff0c;常被称为 Python 3000&#xff0c;或简称 Py3k。 相对…

Mybatis-Plus“读-批量写-读”数据不一致的问题分享

在日常开发过程中&#xff0c;时常会遇到一个如下场景&#xff1a; 根据条件x&#xff0c;读取表A&#xff0c;得到多行数据&#xff1b;遍历读取到的数据&#xff0c;对条件x以外的字段进行修改&#xff0c;并进行保存&#xff1b;&#xff08;重点&#xff09;修改后&#x…

基础算法(七)——离散化

离散化 介绍 这里的离散化&#xff0c;特指整数的、保序的离散化 有些题目可能需要以数据作为下标来操作&#xff0c;但题目给出的数据的值比较大&#xff0c;但是数据个数比较小。此时就需要将数据映射到和数据个数数量级相同的区间&#xff0c;这就是离散化&#xff0c;即…

基于imx6ull第一个Linux驱动

在编译第一个驱动之前&#xff0c;需要把基本的环境准备好&#xff0c;可以参照这两篇文章&#xff1a;https://wlink.blog.csdn.net/article/details/128590747https://wlink.blog.csdn.net/article/details/128591216我们之前写过一个基于ubuntu最基本的字符设备驱动&#xf…

关于固态硬盘冷数据掉速问题解决方案

20230107 By wdhuag 前言&#xff1a; 我有一个西数蓝盘500G固态&#xff0c;系统盘&#xff0c;一年没开机&#xff0c;这个月开机后发现系统很卡&#xff0c;持续读取假死严重。测试没有坏块&#xff0c;网上说的是冷数据掉速问题。 参考&#xff1a; 如何看待西数/闪迪多…

排序算法:插入、希尔、选择、冒泡

目录 一.插入排序 1.算法描述&#xff1a; 2.实现思路&#xff1a; 3.时间复杂度&#xff1a; 代码如下&#xff1a; 二.希尔排序 &#xff08;插入排序的优化升级&#xff09; 1.算法描述&#xff1a; 2.实现思路&#xff1a; 3.时间复杂度&#xff1a; 代码如下&a…

【算法笔记】最近公共祖先(LCA)问题求解——倍增算法

0. 前言 最近公共祖先简称 LCA&#xff08;Lowest Common Ancestor&#xff09;。两个节点的最近公共祖先&#xff0c;就是这两个点的公共祖先里面&#xff0c;离根最远的那个。 这种算法应用很广泛&#xff0c;可以很容易解决树上最短路等问题。 为了方便&#xff0c;我们记…

星光不负赶路人|2022年终总结

时间真快&#xff0c;转眼又是年末。整理一篇文章来给自己好好做一次年终盘点&#xff0c;本着陈述事实&#xff0c;提炼精华&#xff0c;总结不足的思路&#xff0c;给自己这一年的工作、生活、成长画个句号。 工作 &#x1f3e2; 从经海路到中关村 去年换了工作&#xff0c…

Java设计模式中的创建者模式/单例模式是啥?单例模式其中的饿汉式与懒汉式又是啥?又可以用在哪些地方

继续整理记录这段时间来的收获&#xff0c;详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用&#xff01; 4. 创建者模式 4.1 特点 使用者不需要知道对象的创建细节 4.2 单例模式 4.2.1使用场景 单例类&#xff1a;且仅能创建一个实例类访问类&#xff1a;使用单例类…

七、Gtk4-Defining a final class

1 定义一个最终类 1.1 一个非常简单的编辑器 在上一节中&#xff0c;我们创建了一个非常简单的文件查看器。现在我们继续重写它&#xff0c;并将其转换为非常简单的编辑器。它的源文件是tfe目录下的tfe1.c(文本文件编辑器1)。 GtkTextView是一个多行编辑器。因此&#xff0c…

java学习day71(乐友商城)购物车实现

今日目标&#xff1a; 1.实现未登录状态的购物车 2.实现登陆状态下的购物车 1.搭建购物车服务 1.1.创建module 1.2.pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi&…

软件测试~测试分类

目录 1.按照是否查看代码划分 ① 黑盒测试(Black-box Testing) ② 白盒测试(White-box Testing) ③ 灰盒测试(Gray-Box Testing) 2.按照开发阶段划分 ① 单元测试(Unit Testing) ② 集成测试(Integration Testing) ③ 系统测试(System Testing) ④ 验收测试(Acceptance…

kNN分类

一、 概述 kNN(k nearest neighbor,k近邻)是一种基础分类算法&#xff0c;基于“物以类聚”的思想&#xff0c;将一个样本的类别归于它的邻近样本。 ![在这里插入图片描述] 二、算法描述 1.基本原理 给定训练数据集 T{(x1,y1),(x2,y2),...,(xN,yN)}T\left\{ \left( x_1,y_1 …

17. XML

文章目录一、XML概念二、XML语法1、基础语法2、快速入门3、组成部分4、约束1. 约束概述2. 分类3. DTD4. Schema三、XML解析1、操作xml文档2、 解析xml的方式1. DOM2. SAX3. xml常见的解析器&#xff08;工具包&#xff09;4. Jsoup&#xff08;1&#xff09;快速入门&#xff0…

VUE3 学习笔记(一):环境配置、项目创建

一、首先需要安装node.jsnodejs官网&#xff1a;Node.js (nodejs.org)下载安装包&#xff1a;下载稳定版本即可&#xff0c;目前&#xff08;2023-01-07&#xff09;是18.13.0版本c. 检查当前版本&#xff08;CMD&#xff09;&#xff1a;至此&#xff0c;nodejs已经安装成功&a…

电力系统机组组合(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

EM算法学习总结

序 这个和我的硕士毕业论文的题目就有一定关系&#xff0c;我的导师让我按时向她汇报学习进度。然而我还在进行实习&#xff0c;还要准备自己明年的秋招&#xff0c;只能想办法游走于三者之间。 EM算法是一个常用的数据挖掘算法&#xff0c;想必从事数据挖掘的相关工作的同学…

机器人操作系统ROS/ROS2(1)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、ROS和ROS2是什么&#xff1f;二、ROS2安装步骤1.Ubuntu虚拟机安装2.ROS2系统安装3.验证ROS2安装成功4.小海龟仿真示例总结前言 提示&#xff1a;这里可以添…

LeetCode刷题模版:21 - 30

目录 简介21. 合并两个有序链表22. 括号生成23. 合并K个升序链表24. 两两交换链表中的节点25. K 个一组翻转链表26. 删除有序数组中的重复项27. 移除元素28. 找出字符串中第一个匹配项的下标29. 两数相除【未理解】30. 串联所有单词的子串【未理解】结语简介 Hello! 非常感谢您…