首页 web前端 js教程 用JavaScript实现用一个DIV来包装文本元素节点_javascript技巧

用JavaScript实现用一个DIV来包装文本元素节点_javascript技巧

May 16, 2016 pm 04:36 PM
包装 节点

当你的应用需要依赖某个特定的JavaScript类库时,你无意中总会试图解决某些类库自身的问题,而不是语言的问题。就比如当我试图将文本(可能也包含HTML元素)用一个DIV元素包起来时。假设有以下HTML:

This is some text and <a href="">a link</a>
登录后复制

这时候如果想把它转换为下面这样:

<div>This is some text and <a href="">a link</a><div>
登录后复制

最简单暴力的方法是,你可以在父元素上通过 .innerHTML 属性来执行更新,但问题是这样一来所有绑定的事件监听都会失效,因为使用 innerHTML 时会重新创建一个HTML元素。这真是个大玻璃杯!所以这时候只能利用JavaScript来实现 —— 尺有所短、寸有所长。下面是实现代码:

var newWrapper = document.createElement('div'); 
while(existingParent.firstChild) { 
// 移动DOM元素,不会创建新元素 
newWrapper.appendChild(existingParent.firstChild); 
}
登录后复制

这里不能使用for循环,因为 childNodes 是一个动态节点组成的集合,只要移动节点就会影响到他的index索引值。我们用while循环一直检测父元素的 firstChild ,如果其返回一个代表 false 的值, 那么你就知道所有的节点都已经移到新的parent中了!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用SWIG将C/C++包装为Python 使用SWIG将C/C++包装为Python Aug 25, 2023 pm 08:25 PM

有多种方法可以将现有的C或C++功能封装在Python中。在本节中,我们将了解如何使用SWIG包装C/C++功能。以下是在python中包装C/C++功能的其他选项。手动包装使用Pyrex包装C代码。CtypesSIPBoostPythonSWIG(简单包装接口生成器)能够使用许多其他语言(包括Perl、Python、PHP、Ruby、Tcl、C#、CommonLisp(CLISP、Allegro、CL、UFFI、CFFI)、Java、Modula-3和OCAML。Swig还支持多种解释和编译的

查询从节点X开始,距离最多为D的子树中的最小权重 查询从节点X开始,距离最多为D的子树中的最小权重 Aug 25, 2023 am 11:25 AM

在进行计算机编程时,有时需要求出源自特定节点的子树的最小权重,条件是该子树不能包含距离指定节点超过D个单位的节点。这个问题出现在各个领域和应用中,包括图论、基于树的算法和网络优化。子树是较大树结构的子集,指定的节点作为子树的根节点。子树包含根节点的所有后代及其连接边。节点的权重是指分配给该节点的特定值,可以表示其重要性、重要性或其他相关指标。在这个问题中,目标是找到子树中所有节点中的最小权重,同时将子树限制在距离根节点最多D个单位的节点。在下面的文章中,我们将深入研究从子树中挖掘最小权重的复杂性

如何通过Vue和jsmind实现思维导图的节点复制和剪切功能? 如何通过Vue和jsmind实现思维导图的节点复制和剪切功能? Aug 15, 2023 pm 05:57 PM

如何通过Vue和jsmind实现思维导图的节点复制和剪切功能?思维导图是一种常见的思维工具,能够帮助我们整理思路、梳理思维逻辑。而节点复制和剪切功能是思维导图中常用的操作,能让我们更方便地重复利用已有的节点,提高思维整理的效率。在本文中,我们将使用Vue和jsmind这两个工具来实现思维导图的节点复制和剪切功能。首先,我们需要安装Vue和jsmind,并创建

js删除节点的方法是什么 js删除节点的方法是什么 Sep 01, 2023 pm 05:00 PM

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

使用弗洛伊德-沃沙尔算法找到任意两个节点之间的最短路径 使用弗洛伊德-沃沙尔算法找到任意两个节点之间的最短路径 Sep 20, 2023 pm 02:21 PM

C++有一个宏,它被定义为一段代码或期望的值,并且每当用户需要时,它将被重复使用。弗洛伊德-沃尔夏尔算法是在给定的加权图中找到所有顶点对之间最短路径的过程。该算法遵循动态规划的方法来找到最小权重图。让我们通过图表来理解弗洛伊德-沃尔夏尔算法的含义-以顶点1为源,顶点4为目的地,求它们之间的最短路径。我们已经看到有两条路径可以连接到目标顶点4。1->4–边的权重为51->8->3->4–边权重(1+2+1)为4。在给定的图I中,我们看到两个顶点之间连接的最小边。所以这里顶点

js如何创建、删除、追加及替换元素节点(附代码实例) js如何创建、删除、追加及替换元素节点(附代码实例) Aug 06, 2022 pm 05:26 PM

​本文主要给大家介绍js是如何创建、删除、追加及替换元素节点的,希望对需要的朋友有所帮助!

检查给定的图中两个节点之间的路径是否表示最短路径 检查给定的图中两个节点之间的路径是否表示最短路径 Sep 07, 2023 pm 06:57 PM

要检查图表的两个中心之间的给定路径是否符合最短路径,可以通过使用可靠的最短路径将沿给定路径的整个边缘权重与相同中心组合之间的最短距离进行比较方式计算,例如Dijkstra计算或Floyd−Warshall计算。如果给定路径上的所有边权重与最有限的删除相匹配,那么它就代表最简单的路径。另外:如果整个边权重比最短距离更突出,则表明图表中两个中心之间存在较短的距离。使用的方法Dijkstra算法具有边缘反转成本的Floyd−Warshall算法贪心算法Dijkstra的计算可能是一种流行的图表遍历计算

在C程序中,将以下内容翻译为中文:查找链表倒数第n个节点的程序 在C程序中,将以下内容翻译为中文:查找链表倒数第n个节点的程序 Sep 13, 2023 pm 03:13 PM

给定n个节点,任务是打印链表末尾的第n个节点。程序不得更改列表中节点的顺序,而应仅打印链表最后一个节点中的第n个节点。示例Input-:102030405060  N=3Output-:40在上面的例子中,从第一个节点开始,遍历到count-n个节点,即10,2030,40,50,60,所以倒数第三个节点是40。而不是如此高效地遍历整个列表可以遵循的方法-获取一个临时指针,比如说,节点类型的temp将此临时指针设置为指向的第一个节点头指针将计数器设置为列表中的

See all articles