`
李俊良
  • 浏览: 143858 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于appendChild方法的一些问题

 
阅读更多

appendChild方法会改变node的parentNode

看下面的一个例子

function insertBefore(html,targetElement,callback)  
{  
	var pNode = targetElement.parentNode; 
	var temp = document.createElement("div");
	temp.innerHTML = html;
	var frag = document.createDocumentFragment();
	(function(){
		if(temp.firstChild){
			frag.appendChild(temp.firstChild);
			//temp.removeChild(temp.firstChild);
			setTimeout(arguments.callee,0);
		}else{
			pNode.insertBefore(frag,targetElement);
			if(callback){
				callback();
			}
		}
	})()
	
}

 注意注释的部分

有的觉得里面会产生死循环

应该一直都在取temp的firstChild,感觉firstChild一直没有改变

但是其实元素被append到另外一个节点上之后,他的parentNode已经不是temp了

那么等于说temp的firstChild已经没有了,变成下一个节点了

所以不会有死循环问题

分享到:
评论

相关推荐

    js中AppendChild与insertBefore的用法详细解析.docx

    在 JavaScript 中,appendChild 和 insertBefore 是两个常用的方法,用于在 DOM 中插入新的节点。但是,很多开发者对这两个方法的使用和区别不是很清楚,本文将详细解析这两个方法的用法和区别。 appendChild 方法 ...

    js原生appendChild的bug解决心得分享.docx

    ### JavaScript原生appendChild方法的Bug解决心得 #### 一、问题背景 在Web开发中,经常需要通过JavaScript来动态操作DOM元素,其中`appendChild`是一个非常常用的方法,用于将一个节点添加到另一个节点的子节点...

    如何在框架(frame)页面之间使用appendChild()?

    在处理框架页面间交互时,JavaScript的`appendChild()`方法是一个非常实用的工具,它允许我们在DOM(文档对象模型)中添加新的元素。本篇文章将详细探讨如何在框架页面之间使用`appendChild()`。 首先,理解`...

    JS中appendChild追加子节点无效的解决方法

    在jQuery中,`append()`和`appendTo()`方法与原生的`appendChild`类似,但有一些关键区别。`append()`方法接受一个HTML字符串或jQuery对象作为参数,并将其添加到选中的元素内部。例如: ```javascript $('#a')....

    初学js插入节点appendChild insertBefore使用方法

    appendChild方法是在父级节点中的子节点的末尾添加新的节点(相对于父级节点 来说)。 insertBefore 方法 是在已有的节点前添加新的节点(相对于子节点来说的)。 来看个这个简单的实例:在id为box-co

    一个页面元素appendchild追加到另一个页面元素的问题

    当你提到“一个页面元素appendChild追加到另一个页面元素的问题”,实际上涉及的是DOM(Document Object Model)操作,这是网页动态内容的基础。 首先,`appendChild`方法的工作原理是将调用该方法的元素作为父节点...

    javascript使用appendChild追加节点实例

    本文将详细介绍appendChild方法的使用和一个具体实例。 首先,我们需要了解DOM和节点的概念。在HTML文档中,每一个元素、属性甚至文本都可以视为节点。而DOM则是将这些节点以树状结构组织起来,方便JavaScript进行...

    javascript appendChild,innerHTML,join性能比较代码

    - 数组`join()`和`innerHTML`的结合在某些情况下可能比单独使用`innerHTML`稍微高效一些,因为它避免了多次调用`innerHTML`,但总体上仍然不如`appendChild()`。 实际应用中,选择哪种方法取决于具体场景。如果需要...

    js原生appendChild的bug解决心得分享

    然而,在处理类似DOM列表元素时,直接使用`appendChild()`可能会遇到一个“bug”,即在遍历列表元素并尝试使用`appendChild()`方法移除它们时,由于DOM结构的变化,可能会引发意外行为。 首先,让我们弄清楚`...

    append和appendTo的区别以及appendChild用法

    总结一下,`append`和`appendTo`是jQuery提供的方便的添加内容的工具,主要用于DOM元素的动态构建,而`appendChild`是原生JavaScript的方法,用于在元素的子节点列表末尾添加新的或已存在的子节点。在使用这些方法时...

    js AppendChild与insertBefore用法详细对比

    在这部分工作中,最常使用的两个方法就是appendChild()和insertBefore()。尽管这两个方法都用于向文档中添加节点,但它们之间的使用方式及细节存在一些差异。 appendChild()方法是最基本的添加节点方法,它的作用是...

    getElementByID、createElement、appendChild几个DHTML元素第1/2页

    在网页开发中,DOM(Document Object Model)是用于表示HTML或XML文档的树形...在实际的网页开发中,结合使用这些方法以及`createElement()`和`appendChild()`等其他DOM操作方法,可以实现各种复杂的动态效果和功能。

    由 element.appendChild(newNode) ,谈开去

     那么appendChild方法执行的不再 是append操作了,而是一个move操作. 比如说: [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]因为btn1本身是dom 中的一个节点,所以 appendChild操作会将 btn1 移动到 btn4...

    javascript实现的动态添加表单元素input,button等(appendChild)

    写一个小系统时,需要动态添加表单元素,按自己的实现方法写了这篇教程! 我想各位在很多网站上都看到...3、用appendChild方法,将元素追加到某个标签内容中! TemO.appendChild(newInput); Javascrip核心代码: <sc

    走马灯效果代码js appendChild实现的无缝滚动

    - **`appendChild`方法**:这是一个DOM操作方法,用于将一个节点添加到指定父节点的子节点列表的末尾。 - **无缝滚动**:指在页面上展示的内容能够平滑地循环播放,给人一种连续不断的感觉。 - **走马灯效果**:源自...

    appendChild() 或 insertBefore()使用与区别介绍

    `appendChild()` 和 `insertBefore()` 是两个非常重要的方法,用于在已有节点的子节点列表中添加新节点。 `appendChild()` 方法用于将一个节点添加到指定父节点的子节点列表的末尾。这意味着新节点始终会被放置在...

Global site tag (gtag.js) - Google Analytics