jQuery遍历与删除添加节点

news2024/12/24 7:12:19

个人名片:
😊作者简介:一名大二在校生
🤡 个人主页:坠入暮云间x
🐼
座右铭:懒惰受到的惩罚不仅仅是自己的失败,还有别人的成功。
🎅**学习目标: 坚持每一次的学习打卡

文章目录

    • 祖先元素
    • each()方法
    • 一、添加节点元素addNode
    • 二、删除节点
      • remove() 方法
    • empty() 方法
    • 复制节点与替换节点

jQuery遍历

遍历:jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。

jQuery遍历
遍历:jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。

在这里插入图片描述

  1. <div> 元素是 <ul> 的父元素,同时是其中所有内容的祖先。
  2. <ul> 元素是 <li> 元素的父元素,同时是 <div> 的子元素
  3. 左边的 <li> 元素是 <span> 的父元素,<ul> 的子元素,同时是 <div> 的后代。
  4. <span> 元素是 <li> 的子元素,同时是 <ul><div> 的后代。
  5. 两个 <li> 元素是同胞(拥有相同的父元素)。
  6. 右边的 <li> 元素是 <b> 的父元素,<ul> 的子元素,同时是 <div> 的后代。
  7. <b> 元素是右边的 <li> 的子元素,同时是 <ul><div> 的后代。

祖先元素

1**.parent()**方法直接返回被选元素的直接父元素

$(document).ready(function(){
  $("span").parent();
});

2.parents() 方法

parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 ()。

3.parentsUntil() 方法

parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。

代码示例:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../jQuery文件/jquery-1.12.4.js"></script>
</head>

<body id="body1">
    <div id="div1">
        <ul id="ul1">
            <li id="li1">
                <span id="demo">hello</span>
            </li>
        </ul>
    </div>
</body>
<script>
    //parent()  获取父元素
    //parents()  获取所有祖先元素
    //parentsUntil(e)  获取e之后的所有祖先元素

    //1.获取hello的父元素的id
    //console.log($("#demo").parent().attr("id"));

    //2.获取hello的所有祖先元素的id
    // $("#demo").parents().each(function(){
    //     console.log($(this).attr("id"));
    // })

    //3.获取hello所有的div祖先的id
    // $("#demo").parents("div").each(function(){
    //     console.log($(this).attr("id"));
    // })
    //4.获取hello的祖先,且祖先在body之后
    $("#demo").parentsUntil("body").each(function(){
        console.log($(this).attr("id"));
    })
</script>

</html>

each()方法

each(): 方法为每个匹配元素规定要运行的函数。
语法$(selector).each(function*(index,element)*)

在这里插入图片描述

代码实例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../jQuery文件/jquery-1.12.4.js"></script>
</head>

<body>

    <ul>
        <li>咖啡</li>
        <li>牛奶</li>
        <li>果汁</li>
        <li>红茶</li>
    </ul>

</body>
<script>
    //1.将ul下的所有li的文本变为“你好”
    //通过jQuery内部机制【隐式迭代】实现的
  //  $("ul li").text("你好");

    //2.循环输出所有的饮料
    //index:索引值 element:当前元素(一般用this即可)
    //这两个参数都是可以省略的
        // $("ul li").each(function(index,element){
        //     console.log(index+"_____"+element.innerHTML);
        // })
    //3.当索引为偶数时,将li的文本变为红色
    $("ul li").each(function(index){
           if(index % 2==0){
            $(this).css("color","red");
            $(this).css('opacity',(index+1)/10)
           }
        }) 
        $("ul li:even").css("color","red")
    //4.使用循环实现渐变 
    $("ul li").each(function(index){
        $(this).css("color","red");
        $(this).css('opacity',(index+1)/10)
        }) 
</script>

</html>

一、添加节点元素addNode

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../jQuery文件/jquery-1.12.4.js"></script>
</head>

<body>
    <ul>
        <li>咖啡</li>
        <li>牛奶</li>
        <li>果汁</li>
        <li>红茶</li>
    </ul>
    <button>末尾添加</button>
    <button>开头添加</button>
    <button>牛奶之前添加</button>
    <button>牛奶之后添加</button>
</body>
<script>
    //1.在ul子节点列表末尾添加奶茶1、奶茶2、奶茶3
    //第一步创建节点
    $("button:first").click(function(){
        //方式一:使用$()方法创建节点
        var li1 = $("<li></li>").text("奶茶1");
        //方式2:使用html标签创建节点
        var li2="<li>奶茶2</li>";
        //方法3:使用dom方法创建节点
        var li3=document.createElement("li");
        li3.innerHTML="奶茶3"
        //插入节点
        //方法1:使用append()
    //    $("ul").append(li1,li2,li3)
        //方法2:使用appendTo() 一次只能添加一个节点
        $(li1).appendTo("ul")
        $(li2).appendTo("ul")
        $(li3).appendTo("ul")
    })

    //2.在ul子节点列表开头添加冰淇淋
        $("button:contains('开头添加')").on("click",function() {
            var li=$("<li></li>").text("冰淇淋").css("color","red");
            $("ul").prepend(li);
            $(li).prependTo("ul")
        })

    //3.在“牛奶”之前加巧克力牛奶
        $("button:eq(2)").on("click",function(){
            //var li="<li style='color:red'>巧克力牛奶</li>";
            var li=$("<li></li>").text("巧克力牛奶").css("color","red")
            $("ul li:eq(1)").before(li)
        })

    //4.在“牛奶”之后加拿铁
    $("button:eq(3)").on("click",function(){
           var li=document.createElement("li");
           li.style.color="red"
           li.innerText="拿铁";
           $("ul li:eq(1)").after(li)
        })
</script>

</html>

二、删除节点

remove() 方法

remove() - 删除被选元素(及其子元素)

$("#div1").remove();

empty() 方法

empty() 方法删除被选元素的子元素。
语法:

$("#div1").empty();

代码示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../jQuery文件/jquery-1.12.4.js"></script>
</head>

<body>
    <ul>
        <li>咖啡</li>
        <li>牛奶</li>
        <li>果汁</li>
        <li>红茶</li>
    </ul>
    <ul>
        <li>波霸奶茶</li>
        <li>乌龙奶茶</li>
        <li>草莓奶茶</li>
    </ul>
    <button>删咖啡</button>
    <button>删牛奶</button>
    <button>删牛奶下面的</button>
    <button>删所有奶茶</button>
</body>
<script>
    //ele.remove(); 删除ele节点
        $("button:first").click(function(){
            $("ul:first li:first").remove();
        })  
        $("button:eq(1)").click(function(){
            $("ul:first li").remove(":eq(1)");
        })
        $("button:eq(2)").click(function(){
            $("ul:first li:gt(1)").remove();
            // $("ul:first li").each(function(index){
            //     if(index>1){
            //         $(this).remove();
            //     }
           // })
        })
        $("button:eq(3)").click(function(){
            $("ul:eq(1)").empty()
        })
    //ele.empty(); 删除ele节点下的所有子节点,注意,ele本身还在
    
</script>

</html>

复制节点与替换节点

 
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../jQuery文件/jquery-1.12.4.js"></script>
</head>

<body>
    <div id="div1">
        <p style="color:red;font-size: 30px;">大家好,我是p
            <span style="color:orange">我是p里面的span1</span>
            <span style="color:green">我是p里面的span2</span>
        </p>
    </div>
    <button id="copyNode">复制节点</button>
    <button id="replaceNode">替换节点</button>
</body>
<script>
    $("#copyNode").click(function(){
        //第一步复制节点clone()
        var ele=$("#div1 p:first span:eq(1)").clone();
        //第二步插入
        $("#div1 p:first").append(ele)
    })

    //replaceWith()
    //replaceAll()
    $("#replaceNode").click(function(){
        //写法1:
       // $("<button>注册</button>").replaceAll("#div1 p:first span:eq(1)");
        $("#div1 p:first span:eq(1)").replaceWith("<button>注册</button>")
    })
</script>

</html>

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

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

相关文章

如何通过 SSH 访问 VirtualBox 的虚机

VirtualBox 是一款免费虚机软件。在用户使用它安装了 linux 以后&#xff0c;它默认只提供了控制台的管理画面。 直接使用控制台管理 Linux 没有使用诸如 putty 或者 vscode 这样的 ssh 远程管理工具方便。那么可不可以直接使用 ssh 访问 VirtualBox 上的 Linux 呢&#xff1f…

关于碰撞试验

主要参数&#xff1a; 冲击与碰撞试验的主要参数及调整方法 - 百度文库 碰撞试验的技术指标包括&#xff1a;峰值加速度、脉冲持续时间、速度变化量&#xff08;半正弦波&#xff09;、每方向碰撞次数。 加速度&#xff1a;冲击的强度&#xff0c;单位为g&#xff1b;一般为3…

【小红书运营指南2】小红书自律标签的达人分解

小红书标签的达人分解 写在最前面11.27初步想法达人分析 标签拆解&#xff08;速览版&#xff09;分析应用 思路 相关标签拆解&#xff08;详细版&#xff09;11、职场-职场干货 文化薯&#xff08;创业&#xff0c;也是专注知识付费&#xff0c;可以对标学习&#xff09;笔记画…

C++刷题 -- 哈希表

C刷题 – 哈希表 文章目录 C刷题 -- 哈希表1.两数之和2.四数相加II3.三数之和&#xff08;重点&#xff09; 当我们需要查询一个元素是否出现过&#xff0c;或者一个元素是否在集合里的时候&#xff0c;就要第一时间想到哈希法; 1.两数之和 https://leetcode.cn/problems/two…

springcloud多环境部署打包 - maven 篇

背景 在使用 springboot 和sringcloudnacos开发项目过程中&#xff0c;会有多种环境切换&#xff0c;例如开发环境&#xff0c;测试环境&#xff0c;演示环境&#xff0c;生产环境等&#xff0c;我们通过建立多个 yml 文件结合 profiles.active 属性进行环境指定&#xff0c;但…

Dockerfile创建镜像INMP+wordpress

Dockerfile创建镜像INMPwordpress 需要哪些呢&#xff1a; Nginx 172.111.0.10 docker-nginx Mysql 172.111.0.20 docker-mysql PHP 172.111.0.30 docker-PHP 开始实验&#xff1a; 创建各级目录&#xff0c;他们各自的包和配置文件必须要在同一目录下才可以生效&…

互联网加竞赛 LSTM的预测算法 - 股票预测 天气预测 房价预测

0 简介 今天学长向大家介绍LSTM基础 基于LSTM的预测算法 - 股票预测 天气预测 房价预测 这是一个较为新颖的竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/postgraduate 1 基于 Ke…

STM32——串口实验(非中断)

需求&#xff1a; 接受串口工具发送的字符串&#xff0c;并将其发送回串口工具。 硬件接线&#xff1a; TX -- A10 RX -- A9 一定要记得交叉接线&#xff01;&#xff01; 串口配置&#xff1a; 1. 选定串口 2. 选择模式 异步通讯 3. 串口配置 4. 使用MicroLIB库 从…

PaddleOCR:超越人眼识别率的AI文字识别神器

在当今人工智能技术已经渗透到各个领域。其中&#xff0c;OCR&#xff08;Optical Character Recognition&#xff09;技术将图像中的文字转化为可编辑的文本&#xff0c;为众多行业带来了极大的便利。PaddleOCR是一款由百度研发的OCR开源工具&#xff0c;具有极高的准确率和易…

PyQt6 QStatusBar状态栏控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计44条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

漂亮的WPF界面 流行的一个界面,向上悬浮的窗口,终于试成功了

目前随便打开个APP&#xff0c;就可以看到一个悬浮的窗口 今天测试一下目前流行的一个界面&#xff0c;向上悬浮的窗口&#xff0c;终于试成功了。看着还不错的。

【无标题】树莓派 4B 多串口配置

0. 实验准备以及原理 0.1 实验准备 安装树莓派官方系统的树莓派 4B&#xff0c;有 python 环境&#xff0c;安装了 serial 库 杜邦线若干 屏幕或者可以使用 VNC 进入到树莓派的图形界面 0.2 原理 树莓派 4B 有 UART0&#xff08;PL011&#xff09;、UART1&#xff08;mini UAR…

AI 绘画快速开始-StableDiffusionWebui

文章目录 介绍WebUI 的安装和部署参数介绍Prompt技巧初阶Prompt&#xff1a;直接描述的精细化二阶Prompt&#xff1a;巧用标签的扩展三阶Prompt&#xff1a;负面提示词的深入应用四阶Prompt&#xff1a;文本权重调整的细化引入 LoRA&#xff1a;模型特效的创新应用 案例-生成漫…

Armv8/Armv9从入门到精通-课程介绍

通知&#xff0c;Arm二期&#xff0c;咱们也有大合集PDF了&#xff0c;共计1587页&#xff0c;还未完成&#xff0c;后续持续更新和优化中。为了方便大家阅读、探讨、做笔记&#xff0c;特意整了此合集PPT&#xff0c;为了增加标签目录&#xff0c;还特意开了福兮阅读器会员。 …

Aduino实现音频频谱效果

看到这样一个效果,于是想用arduino实现类似效果。需要的组件如下 1 arduino开发板 2 音频传感器 3 灯带 接线图如图 代码如下 #include <EEPROM.h>#include <Adafruit_NeoPixel.h>#define PIN 2 // input pin Neopixel is attached to#define NUMPIXELS …

优雅玩转实验室服务器(三)vscode is all you need

在前两章解决了传输问题和连接问题后&#xff0c;我们紧接着遇到一个新的需求&#xff1a;我们需要coding呀&#xff0c;你当然可以说&#xff0c;我们可以用vim和对应的插件来搭建一个IDE呀&#xff0c;fine&#xff0c;我甚至可以给你推荐如下的教程&#xff1a; Vim 到底可…

Java - Math类的常用方法及练习

目录 1.1 概述 1.2 常用方法 ❓面试题&#xff1a;为啥Math.round(-1.5)-1? 1.1 概述 java.lang.Math 类包含用于执行基本数学运算的方法&#xff0c;如初等指数、对数、平方根和三角函数。类似这样的工具类&#xff0c;其所有方法均为静态方法&#xff0c;并且不会创建对象…

包装类 和 初阶泛型(详解)

【本节目标】 1. 以能阅读 java 集合源码为目标学习泛型 2. 掌握包装类 3. 掌握泛型 1. 包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型。 除了Integer和Charact…

MySQL笔记-第08章_聚合函数

视频链接&#xff1a;【MySQL数据库入门到大牛&#xff0c;mysql安装到优化&#xff0c;百科全书级&#xff0c;全网天花板】 文章目录 第08章_聚合函数1. 聚合函数介绍1.1 AVG和SUM函数1.2 MIN和MAX函数1.3 COUNT函数 2. GROUP BY2.1 基本使用2.2 使用多个列分组2.3 GROUP BY中…

云音乐大模型 Agent 探索实践

一. 前言 本篇文章介绍了大语言模型时代下的 AI Agent 概念&#xff0c;并以 LangChain 为例详细介绍了 AI Agent 背后的实现原理&#xff0c;随后展开介绍云音乐在实践 AI Agent 过程中的遇到的问题及优化手段。通过阅读本篇文章&#xff0c;读者将掌握业界主流的 AI Agent 实…