JQuery学习笔记(五)——复制、替换和包裹节点

2024-06-10 02:38

本文主要是介绍JQuery学习笔记(五)——复制、替换和包裹节点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

复制节点

  1. clone():克隆匹配的DOM元素,返回值为克隆后的副本。但此时复制的新节点不具有任何行为。
  2. clone(true):复制元素的同时也复制元素中的事件。(元素的ID属性也会被复制)
    e.g :复制li元素,并修改副本ID,以及保存事件行为。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>
<script type="text/javascript">//测试使用 jQuery clone 方法: 复制节点$(function() {$("li").click(function() {alert($(this).text());});//复制 #bj 节点, 并添加到 #rl 节点的后面/*1. clone 节点时需要注意克隆后的节点的 id 属性. 若原节点有 id属性, 则克隆后, 会出现在一个文档中有两个 id 相同的节点的情况.2. clone(true): 在克隆节点的同时, 克隆节点包含的事件. */$("#bj").clone(true).attr("id", "bj2").insertAfter($("#rl"));})
</script>
</head>
<body><p>你喜欢哪个城市?</p><ul id="city"><li id="bj">北京</li><li>上海</li><li id="dj">东京</li><li id="se">首尔</li></ul><br><br><p>你喜欢哪款单机游戏?</p><ul id="game"><li id="rl">红警</li><li>实况</li><li>极品飞车</li><li>魔兽</li></ul>
</body>
</html>

替换节点

  1. replaceWith():将所有匹配的元素都替换为指定的HTML或者DOM元素
    a.replaceWith(b),使用b,替换a
  2. replaceAll():反向的replaceWith()
    a.replaceAll(b),使用a,替换所有的b
    若在替换之前,已经在元素上绑定了事件,替换后原先绑定的事件会与原先的元素一起消失,两个方法具有移动功能
    e.g:节点互换
var $clone= $("#item1").clone(true);
var $item2= $("#item2").replaceWith($clone);   //此处方法返回对象依旧是item2
$("#item1").replaceWith($item2);

包裹节点

  1. wrap():将指定节点用其他标记包裹起来。该方法对于需要在文档中插入额外的结构化标记非常有用。而且不会破坏原始文档的语义。
  2. wrapAll():将所有匹配的元素用一个元素来包裹。
  3. wrapInner():将每一个匹配的元素的子内容用其他结构化标记包裹起来。
    e.g:将li元素使用<font color='red'></font> 包裹起来

warp():

$("li").wrap("<font color='red'></font>");<ul><font color="red"><li id="rl">红警</li></font><font color="red"><li>实况</li></font><font color="red"><li>极品飞车</li></font><font color="red"><li>魔兽</li></font>
</ul>

wrapAll()

$("li").wrapAll("<font color='red'></font>");<ul><font color="red"><li id="bj" name="BeiJing">北京</li><li>上海</li><li id="dj">东京</li><li id="se">首尔</li></font>     
</ul>

wrapInner()

$("li").wrapInner("<font color='red'></font>");<ul><li><font color="red">C</font></li><li><font color="red">Java</font></li><li><font color="red">.NET</font></li><li><font color="red">PHP</font></li>
</ul>

tr插入和删除

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>tr的创建和删除</title>
<script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>
<script type="text/javascript">/***  1. find(): 查找子节点, 返回值为子节点对应的 jQuery 对象*  2. $.trim():   去除前后空格*  3. obj.append(): 元素内部添加标签(返回对象为obj)*  4. obj.appendTo("selector"): obj添加到selector中(返回对象为obj)*/$(function() {// 删除一行function removeTr(obj) {var $tr = $(obj).parent().parent();var name = $tr.find("td:first").text();var flag = confirm("确定删除" + $.trim(name) + "吗?");if (flag) {$tr.remove();}return false;}// 添加一行$("#_submit").click(function() {var $name_val = $("#addTr #name").val();var $email_val = $("#addTr #email").val();var $salary_val = $("#addTr #salary").val();// 创建一行var $table = $("#removeTr");$("<tr></tr>").append("<td>" + $.trim($name_val) + "</td>").append("<td>" + $.trim($email_val) + "</td>").append("<td>" + $.trim($salary_val) + "</td>").append("<td>" + "<a href='#'>删除</a>" + "</td>").appendTo($("#removeTr")).find("a").click(function(){removeTr(this);});});// a标签触发事件$("#removeTr a").click(function() {return removeTr(this);});});
</script>
</head>
<body><table id="addTr" align="center"><tr><td>name:</td><td><input type="text" id="name" name="name"></td><td>email:</td><td><input type="text" id="email" name="email"></td><td>salary:</td><td><input type="text" id="salary" name="salary"></td></tr><tr><td colspan="6" align="center"><input type="button" id="_submit"name="_submit" value="添加"></td></tr></table><br><br><table id="removeTr" align="center" border="1"><tr><td>Tom</td><td>tom@qq.com</td><td>1000</td><td><a href="#">删除</a></td></tr><tr><td>Bob</td><td>bob@qq.com</td><td>2000</td><td><a href="#">删除</a></td></tr><tr><td>Angle</td><td>angle@qq.com</td><td>3000</td><td><a href="#">删除</a></td></tr></table>
</body>
</html>

效果图

这篇关于JQuery学习笔记(五)——复制、替换和包裹节点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047000

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*