`
ycyk_168
  • 浏览: 100630 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

JavaScript学习笔记(7) IE环境下cloneNode的一个bug

阅读更多

     cloneNode是进行DOM操作经常使用的方法,有了它我们可以很容易的克隆一个跟原来一模一样的DOM对象,如:在动态增加table的行的时候,我们只需克隆一个table中现有的行,然后调用talbe.appendChild()方法就可以实现,而无需调用table繁琐的DOM操作方法。但是在开发中,我发现cloneNode在对select进行克隆时却无法克隆出当前选中的option,克隆出来的对象的options中拥有selected属性的永远都是第一个。
 

 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2<html>
 3  <head>
 4    <title>CloneNode.html</title>
 5    <script type="text/javascript">
 6        function $(id){
 7            return document.getElementById(id);
 8        }

 9        
10        window.onload = function(){
11            document.body.appendChild($("txt").cloneNode(true));
12            document.body.appendChild(document.createElement("<p>"));
13            document.body.appendChild($("select").cloneNode(true));
14        }

15    
</script>    
16  </head>
17  <body>
18    <form>
19        <input type="text" name="txt" id="txt" value="测试一下CloneNode之后还有没有值" style="width:300px"/> 
20        <select id="select" name="select">
21            <option value="">请选择</option>
22            <option value="1" selected>1</option>
23            <option value="2">2</option>
24            <option value="3">3</option>
25        </select>
26    </form>
27  </body>
28</html>
29

 
    下面是调用document.write($("select").cloneNode(true).outerHTML)后打印的HTML:

1<SELECT id=select name=select>
2         <OPTION value="" selected>请选择</OPTION>
3         <OPTION value=1>1</OPTION>
4         <OPTION value=2>2</OPTION>
5         <OPTION value=3>3</OPTION>
6    </SELECT>


    以上代码在FireFox下运行正常,但在IE中不正常!

分享到:
评论

相关推荐

    javascript 拷贝节点cloneNode()使用介绍.docx

    在JavaScript中,`cloneNode()`方法是DOM(Document Object Model)操作中的一个重要功能,主要用于复制(克隆)DOM树中的节点及其属性。这对于创建复杂的用户界面或者动态调整页面内容时非常有用。 #### 一、...

    IE下使用cloneNode注意事项分享

    总结来说,在使用`cloneNode`时,特别是在IE环境下,务必谨慎处理`script`、`iframe`和`link`等可能执行脚本的节点,确保克隆操作不会导致意外的代码执行或副作用。最佳实践是尽可能减少不必要的子节点,或者在克隆...

    Opera下cloneNode的bug

    这里我们要讨论的是一个与`cloneNode`方法相关的bug,尤其在处理Form节点时可能会遇到。 `cloneNode`是DOM操作中的一个重要函数,它用于复制一个节点及其所有子节点。在大多数情况下,这个方法在不同浏览器间表现...

    Javascript技术笔记2

    3. **`cloneNode`**:复制一个节点及其所有子节点,或仅复制节点本身。 例如,复制一个带有ID `div1`的元素: ```javascript var obj = document.getElementById("div1"); var obj2 = obj.cloneNode(false); ...

    js DOM学习笔记11

    JavaScript DOM 学习笔记 JavaScript DOM(Document Object Model)是 HTML 和 XML 文档的编程接口,它提供了一种访问和操作文档结构和内容的方式。DOM 将文档表示为一个树状结构,其中每个节点都代表文档中的一个...

    javascript dom操作之cloneNode文本节点克隆使用技巧

    在JavaScript中,DOM(文档对象模型)操作是实现网页动态交互的基础,而`cloneNode`方法是DOM操作中用于克隆节点的一个重要函数。了解`cloneNode`以及它在克隆文本节点时的使用技巧,对于进行DOM操作的前端开发者来...

    Javascript学习第一季(6)

    ### JavaScript学习第一季(6):DOM编程 在这一章节中,我们将深入探讨JavaScript与DOM(文档对象模型)之间的交互,以及如何通过DOM操作来增强我们的网页开发技能。DOM是Web开发中的一个重要概念,它提供了访问和...

    javascript cloneNode()方法的使用

    javascript 中的 cloneNode() 方法是用来克隆一个元素的,包括其所有子元素和属性。该方法返回克隆的元素,并且可以选择是否克隆元素的所有子元素。 在上面的实例代码中,我们使用了 cloneNode() 方法来克隆一个 ...

    JavaScript 用cloneNode方法克隆节点的代码

    例如,如果需要创建多个内容相同的段落标签,我们首先可以定义一个包含文本内容的模板节点,然后使用for循环结合cloneNode方法创建多个副本,并修改每个副本的属性(如id)以区分它们。 此外,使用cloneNode方法的...

    javascript 拷贝节点cloneNode()使用介绍

    cloneNode(a)方法接受一个布尔值参数,表示是否深拷贝 true:表示执行深拷贝,复制本节点以及整个子节点树. false:浅拷贝.只复制节点本身. 复制后返回的节点副本属于文档所有,但是并没有父节点.除非使用appendChild,...

    Jquery学习笔记1

    ### Jquery 学习笔记1 本篇笔记主要围绕 jQuery 的基本使用方法展开,包括了 DOM 操作、选择器的使用、属性与过滤器等内容。jQuery 是一款优秀的 JavaScript 库,它极大地简化了 HTML 文档遍历、事件处理、动画等...

    Javascript学习第一季--Javascript&nbsp;DOM&nbsp;总结.doc

    例如,你可以将一个子节点从一个位置移动到另一个位置。 此外,`insertBefore()` 方法允许你在特定子节点之前插入新节点,而 `replaceChild()` 则可以替换现有子节点。 DOM 操作是JavaScript动态更新网页的核心,...

    JAVASCRIPT.ppt

    `nextSibling`和`previousSibling`分别表示当前节点的下一个和上一个兄弟节点。 DOM提供了多种方法来操作这些节点,如: 1. `document.createElement()`:创建一个新的HTML元素。 2. `document.createAttribute()`...

    javascript学习笔记(十九) 节点的操作实现代码

    通过上述知识点的学习,我们可以了解到如何在JavaScript中灵活地操作DOM节点,完成动态地页面构建和更新。这些技能对于前端开发者来说是基础且核心的能力,是构建动态Web应用不可或缺的一部分。

    JavaScript学习笔记(十七)js 优化

    JavaScript优化是提升代码性能的关键,尤其对于大型应用来说,每一点优化都能带来显著的性能提升。在JavaScript中,有多种循环结构,包括for(;;)、while()和for(in)。其中,for(in)循环效率最低,因为它需要遍历对象...

    JavaScript 无缝上下滚动加定高停顿效果

    本段代码展示了一个利用JavaScript实现的无缝上下滚动效果,同时在达到特定高度时会暂停一段时间。这种效果常见于网站中的滚动广告条或者新闻滚动区域等场景,能够有效吸引用户的注意力,提高用户体验。 ### 二、...

    javaScript面试题

    闭包是指一个函数可以访问并操作其外部作用域的变量,即使在其外部作用域已销毁的情况下。闭包有以下特点: - 保存外部变量的状态。 - 形成私有作用域,防止变量污染全局。 - 可以用于创建回调函数和记忆化技术...

Global site tag (gtag.js) - Google Analytics