JS加强学习-DOM学习04

7.4 获取节点的属性兼容性

firstChild:获取父元素的第一个子节点谷歌,火狐都支持的,但是获得的不一定是元素节点,IE8及之前的版本会忽略空白文本。

firstElementChild:获取父元素的第一个子标签节点,但是IE8及之前的版本不支持。

lastChild:获取父元素的最后一个子节点谷歌,火狐都支持的,但是获得的不一定是元素节点,IE8及之前的版本会忽略空白文本。

lastElementChild:获取父元素的最后一个子标签节点,但是IE8及之前的版本不支持。

像这种属性在不同浏览器显示不一样的情况还有很多,不同的浏览器上所支持的属性不同,我们可以封装在一个函数中,打开不同浏览器时自动判断并选择浏览器想匹配的属性。

/**
 * 获取当前对象上一个同级元素节点
 * @param object
 * @returns {*}
 */
function getPreviousSibling(object){
    if(object.previousElementSibling){
        return object.previousElementSibling;
    }else{
        var node = object.previousSibling;
        while(node&&node.nodeType!=1){
            node = node.previousSibling;
        }
        return node;
    }
}

/**
 * 获取当前对象下一个同级元素节点
 * @param object
 * @returns {*}
 */
function getNextSibling(object){
    if(object.nextElementSibling){
        return object.nextElementSibling;
    }else{
        var node = object.nextSibling;
        while(node&&node.nodeType!=1){
            node = node.nextSibling;
        }
        return node;
    }
}

/**
 * 获得父元素的第一个子元素节点
 * @param object
 * @returns {*}
 */
function getFirstChild(object){
    if(object.firstElementChild){
        return object.firstElementChild;
    }else{
        var node = object.firstChild;
        while(node&&node.nodeType!=1){
            node = node.nextSibling;
        }
        return node;
    }
}

/**
 * 获得父元素的最后一个子元素节点
 * @param object
 * @returns {*}
 */
function getLastChild(object){
    if(object.lastElementChild){
        return object.lastElementChild;
    }else{
        var node = object.lastChild;
        while(node&&node.nodeType!=1){
            node = node.previousSibling;
        }
        return node;
    }
}

这是几个封装的简单函数,用于匹配浏览器一些属性的。如果这些函数属于同类型的函数,如都是为了获取元素节点的,就可以将这些函数再封装下,创建对象,这些函数作为对象的方法来封装,可以更加方便以后自己维护。

7.5 克隆及追加节点

克隆节点:cloneNode(true/false)

参数为True的时候,是深度克隆,克隆当前对象的一切子节点。
参数为false的时候,是浅克隆,只会克隆标签,不包含文本信息。

追加节点:appendChild

往父级元素的最后追加节点。

时间: 2024-10-13 05:58:25

JS加强学习-DOM学习04的相关文章

JS加强学习-DOM学习01

JavaScript由三个部分组成:ECMAScript.DOM.BOM.前面已经学习了ECMAScript中的基础内容,现在可以开始学习DOM部分了,在DOM中更多的是实际效果的展现. 1. DOM定义 DOM:document object model 文档对象模型 它是将整个页面文档封装成了一个对象,并且这个文档对象由很多不同的节点组成. 节点包括三部分: 元素节点(标签节点).属性节点.文本节点. 2. 获取页面的方式 2.1 getElementById Id: document.ge

javascript(js)基础之dom学习

dom学习 <img id='xx'.. onclick='aa()'> functon aa(){ xx1=document.getElementById("xx") //下面对xx1进行操作 } bom介绍:浏览器对象模型 因为浏览器企业太多,w3c定义了一个做浏览器的规范 规定 ----------- dom介绍/学习:文档对象模型 dom树 例子 <script language="JavaScript"> function text

JS加强学习-DOM学习03

7. 节点 7.1 节点的组成 .nodeType查看节点的类型(使用阿拉伯数字表示) .nodeName查看节点的名字 .nodeValue查看节点的值 节点分成:标签节点.属性节点.文本节点.注释节点.文档节点. 标签的节点: 标签的节点类型:  1 标签的节点名字: 对应的标签名字 标签的节点值 :  null 文本的节点: 文本的节点类型:  3 文本的节点名字: #text 文本节点值:   对应的文本值,如果没有,就是空 属性节点: 属性的节点类型:  2 属性的节点名称: 对应的属

JS加强学习-DOM学习02

4. 获得或设置页面文本内容的方式 innerText innerHTML textContent 区别: 4.1 获取页面文本内容: innerText只获取标签间的文本信息,不包括其中的标签,而innerHTML是获得标签之间的所有内容包括标签,而且有些浏览器会将获取的内容原样输出,innerHTML是所有浏览器都支持,没有兼容性的问题,而innerText是IE8及早期的IE浏览器支持的,老版本火狐浏览器只支持textContent不支持innerText. 4.2 设置文本内容: inn

JS加强学习-DOM学习总结

1. DOM复习 DOM:document object model  文档对象模型或文档树模型. 1.1 节点分类 DOM中一共有5个节点类型,而现在我们常用的有三种:标签(元素)节点,属性节点,文本节点. 我们可以通过nodeType获取节点的类型(一个数字),通过nodeName获得节点名,通过nodeValue获得节点的值. 1.2 获得页面元素的三种方式 document.getElementById:通过标签的id值获得元素. document.getElementsByTagNam

JS加强学习-DOM学习05

7.6 移除节点   removeChild() 是将父元素中的某个子节点移除掉:这个为彻底移除. 7.7 插入节点   insertBefore 不同于appendChild(),appendChild()为将指定的元素剪切至对象所有子元素的最后.而insertBefore(,)是将指定的元素插入到某个位置之前,第一个参数为指定的元素,第二个参数为父元素中某个子元素的位置,指定元素会插入到第二个参数位置之前. 8. JS设置样式 8.1 JS设置样式的两种方式 style:逐条获取样式属性,逐

PhotoSwipe.js 相册展示插件学习

PhotoSwipe.js官网:http://photoswipe.com/,在这个网站上可以下载到PhotoSwipe的文件以及相关的例子. 这个组件主要是用来展示图片.相册用的,还是很实用的. 一.使用这个组件需要引入两个js文件: 1 <script type="text/javascript" src="simple-inheritance.min.js"> 2 <script type="text/javascript"

Js脚本之jQuery学习笔记(1)

Js脚本之jQuery学习笔记(1) 一.javascript基础 单行注释 多行注释 /* */ 数据类型 数值型 字符串型 布尔型 空值 未定义值 转义字符 函数定义:1234567891011121314<head><script language="javascript"function test(m){var xixi="嘻嘻"alert("这是javascript")document.write(xixi + m)}

HTML DOM 学习总结

DOM:核心DOM.XML DOM.HTML DOM 这里是对于HTML DOM学习的总结 --------------------------------------------------------------- 1.DOM介绍 DOM:Document Object Model,文档对象模型 如上图,元素.文本.属性三种节点作为叶子节点构成一颗树 通过可编程的对象模型,JS获得了足够的能力来创建动态的HTML,能改变页面中的所有HTML元素 各个节点之间存在着逻辑关系:parent.si