`

JavaScript DOM笔记:修改DOM

阅读更多





常用函数:



createElement 创建元素(不会立即显示,必须绑定到某个父节点上)



createTextNode 创建文本节点(不会立即显示,必须绑定到某个父节点上)



insertBefore 将一个元素插入到父节点下的某个元素之前(插入后浏览器即时渲染)



appendChild 将一个元素添加到父节点下的最后位置(插入后浏览器即时渲染)



removeChild 从父节点中删除一个节点(删除后浏览器即时渲染)





以下为《精通JavaScript》中提供的函数



function checkElem(elem) {
    //如果只提供字符串,则把它转化为文档节点
    return elem && elem.constructor == String ? document.createTextNode(elem) : elem;
};

function append(parent, elem) {
    parent.appendChild(checkElem(elem));
};

function before(parent, before, elem) {
    //如果只传入了两个参数,那么需要获取第一个参数的父节点以使用inserBefore函数
    if(elem == null) {
        elem = before;
        before = parent;
        parent = before.parentNode;
    }
    parent.insertBefore(checkElem(elem), before);
};


elem && elem.constructor == String …… 这里的运算顺序是 elem && ( elem.constructor == String ) ……



另外,直接从innerHTML插入具有更高的效率,但是XML不支持innerHTML属性。



如果要传入的elem参数是一个DOM节点和HTML字符串的混合数组,改进函数如下:



function checkElem(a) {
    var r = [];
    //如果参数不是数组,强行转换
    if (a.constructor != Array)
        a = [a];
    for (var i = 0; i < a.length; i++) {
        if (a[i].constructor == String) {
            //用一个临时变量存放HTML
            var div = document.createElement("div");
            //注入HTML,转换成DOM结构
            div.innerHTML = a[i];
            //提取DOM结构到临时div中
            for (var j = 0; j < div.childNodes.length; j++)
                r[r.length] = div.childNodes[j];
        }
        else if (a[i].length) {
            // 假定是DOM节点数组
            for (var j = 0; j < a[i].length; j++)
                r[r.length] = a[i][j];
        }
        else {
            //否则假定是DOM节点
            r[r.length] = a[i];
        }
    }
    return r;
};

function before(parent, before, elem) {
    //检查是否提供parent节点参数
    if (elem == null) {
        elem = before;
        before = parent;
        parent = before.parent;
    }
   
    //获取元素的新数组
    var elems = checkElem(elem);
   
    //向后遍历数组,因为我们向前插入元素
    for (var i = elems.length - 1; i >= 0; i--) {
        parent.insertBefore(elems[i], before);       
    }
};

function append(parent, elem) {
    var elems = checkElem(elem);
    for (var i = 0; i < elems.length; i++) {
        parent.appendChild(elems[i]);
    }
};


最后再补充两个函数:



function remove(elem) {
    if (elem)
        elem.parentNode.removeChild(elem);
}

function empty(elem) {
    while(elem.firstChild)
        remove(elem.firstChild);
}

http://www.cnblogs.com/zhengchuyu/archive/2008/07/23/1249951.html
分享到:
评论

相关推荐

    JavaScript dom编程艺术:个人笔记.pdf

    但根据标题和描述提供的信息,我可以为您概述“JavaScript DOM编程艺术”这本书的一些核心知识点。以下内容是基于这本书中可能涉及的主题和内容进行的假设性介绍: 1. JavaScript基础知识:学习DOM编程之前,首先要...

    javascript DOM笔记 1

    JavaScript DOM(Document Object Model)是用于操作HTML和XML文档的标准接口。它允许程序和脚本动态更新、添加或删除页面中的元素和...掌握DOM操作是任何JavaScript开发者必备的技能之一,尤其是在进行前端开发时。

    读书笔记:Javascript基础总结Dom事件原生函数正则.zip

    读书笔记:Javascript基础总结Dom事件原生函数正则

    JavaScript_DOM_编程艺术读书笔记

    ### JavaScript DOM 编程艺术读书笔记关键知识点解析 #### 一、JavaScript简史与相关技术简介 - **XHTML(可扩展的超文本标记语言)**:这是一种更加严格、更加强大的HTML版本,旨在提高网页的可读性和可扩展性。 ...

    JavaScript HTML DOM学习笔记.emmx

    从菜鸟教程上学习的关于js的学习笔记,可以用于参考学习使用,脑图样式,浏览更方便,有需要的同学可以带走

    韩顺平javascript笔记(最全整理 dom编程 oop 基础语法)

    JavaScript通过DOM API可以操作页面上的元素,例如通过`document.getElementById`、`document.querySelector`或`document.querySelectorAll`找到特定元素,通过`innerHTML`、`innerText`或`textContent`修改元素内容...

    javaScript DOM编程艺术2版学习笔记

    在这个学习笔记中,涵盖了从基础到高级的JavaScript和DOM操作技巧,一共涉及1~9章的内容。以下是对这些章节知识点的详细阐述: **第1章:JavaScript简介** 本章介绍了JavaScript的基本概念,包括它是一种解释型、弱...

    javascript_使用DOM笔记1

    根据提供的文件信息,我们可以总结出以下几个关键的知识点: ... 在JavaScript中,可以通过多种方式来获取HTML文档中的元素。...这些方法在实际开发中非常常见且实用,掌握它们将有助于更好地理解和使用JavaScript与DOM。

    javascript笔记 javascript笔记

    JavaScript可以用来动态地修改文档对象模型(DOM),从而改变网页的内容或布局。 **示例6:** ```html ('Down!')"&gt;Click ('Click!')"&gt;Click ``` - **解释:** 第一个链接在鼠标按下的时候会在页面上输出`Down!`;第二...

    比较详细的javascript DOM 学习笔记第1 2页.docx

    ### JavaScript DOM 学习笔记知识点总结 #### 一、DOM基础概述 DOM(Document Object Model)文档对象模型是一种处理可扩展标记语言的标准编程接口。它提供了结构化文档(如HTML和XML)的标准方法来访问、修改文档...

    狂神说系列 JavaScript笔记

    【狂神说系列 JavaScript笔记】是一份全面且深入的JavaScript学习资源,旨在帮助开发者和初学者深入理解这门广泛应用于Web开发的脚本语言。这份笔记涵盖了JavaScript的基础语法、核心概念以及高级特性,旨在构建一个...

    JavaScript DOM编程艺术(中文第二版)学习笔记

    总的来说,JavaScript DOM编程艺术这本书涵盖了JavaScript基础、DOM操作以及实际应用,是学习网页动态交互和JavaScript编程的重要资源。通过学习,开发者能够熟练地创建交互式、动态的网页内容。

    传播智客扬中科老师讲的DOM 学习笔记

    通过以上分析,我们了解了DOM的基本操作,包括选择和修改DOM节点,动态生成DOM结构,以及响应用户事件。这些是前端开发中非常核心的技能,掌握它们能够帮助开发者创建更加动态和交互丰富的网页应用。同时,对`this`...

    javascript学习笔记1

    ### JavaScript 学习笔记1:数组、DOM与BOM简要总结 #### 数组方法概述 在JavaScript中,数组是一种非常重要的数据结构,用于存储多个值。数组对象提供了多种方法来帮助我们操作数组中的元素。 - **pop()**:从...

    JavaScript学习笔记

    - DOM操作:查找、创建、修改和删除DOM元素,以及DOM遍历。 7. **ES6新特性** - 类和模块:ES6引入了类的语法糖和模块系统,使得代码组织更加规范。 - 解构赋值:从数组或对象中提取值并赋给变量的新方法。 - ...

    菜鸟的Javascript笔记.rar

    这个菜鸟的笔记里面没有谈到JavaScript中的对象,比如说时间对象和字符串对象,这些内容可以在“菜鸟的JavaScript对象笔记”中找到。不过因为小菜鸟个人认为HTML DOM比其它的JavaScript对象更常用一些(不过这可不...

    李立超JavaScript基础篇笔记

    JavaScript与网页的交互主要依赖于DOM(Document Object Model)和BOM(Browser Object Model)。DOM提供了对网页内容进行操作的对象,而BOM则允许开发者控制浏览器的某些特性,如窗口、历史记录和导航。 在HTML中...

    树懒_day04.1_javascript_DOM笔记

    移动开发小白树懒,正在迈向远大的自己而现在努力的打下基础.JavaScript的DOM的高级部分.

    JavaScript基础学习笔记

    本资源摘要信息基于黑马视频记录的学习笔记,涵盖了 JavaScript 基础知识点,包括 HTML、CSS、JavaScript、DOM、事件处理等内容。 HTML 和 CSS 基础 * HTML 结构:head、body、title、meta、link、script 等标签的...

    JavaScript-学习笔记.pdf

    以上是JavaScript学习笔记中提到的一些核心知识点,通过对这些知识点的理解和熟练应用,可以为进一步学习和掌握JavaScript打下坚实的基础。在实际开发过程中,结合具体的项目需求,这些知识会得到更深入的拓展和应用...

Global site tag (gtag.js) - Google Analytics