• DOM节点类型详解


    万维网联盟(W3C)定义HTML DOM 标准节点有以下几种 ()

                          类型                           值                    说明  

    ELEMENT_NODE  1 元素节点 *
    ATTRIBUTE_NODE     2 属性节点 *
    TEXT_NODE   3 文本节点 *
    CDATA_SECTION_NODE 4 CDATA 区段  
    ENTITY_REFERENCE_NODE 5 实体引用  
    ENTITY_NODE 6 实体  
    PROCESSING_INSTRUCTION_NODE 7 处理指令  
    COMMENT_NODE 8 注释节点 *
    DOCUMENT_NODE 9 文档节点 *

    注: * 表示常用

    IE与FF 对 以上节点的 "理解" 有差异,如比我们写js :  对象.nextSibling   ,  来取得对象的下一个兄弟节点, 在IE中,只会取ELEMENT_NODE (元素节点), 忽略其它类型节点.     FF会取得上面各种类型节点.

    如:

    Java代码  收藏代码
    1. <table>  
    2.   <tr  id="nst"><td></td></tr>(这里有换行,就是一个文本节点)  
    3.   <tr><td></td></tr>  
    4. </table>  
    5. --------------------------------------   
    6. <js>  
    7. var o=$('nst');  
    8. var next=o.nextSibling;  
    9. </js>   
    10. ---------------------------------------   

      结果: IE中:next 是元素节点 (第二个<tr>) FF中:next 是文本节点 (那个换行)

    解决办法: 在base.js中有如下方法:  通过判断 nodeType == 1  来解决问题

     

    // 获得下一个元素对象(nodeType=1)
    function $NE(e)
    {
    	e = e.nextSibling;
    	while (e && e.nodeType != 1){e = e.nextSibling;}
    	return e;
    }
    // 获得第一个元素对象(nodeType=1)
    function $FE(e)
    {
    	e = e.firstChild;
    	while (e && e.nodeType != 1){e = e.nextSibling;}
    	return e;
    }
  • 相关阅读:
    LVM详解
    redis数据类型
    radis数据库安装
    POJ3294 Life Forms 【后缀数组】
    BZOJ1076 [SCOI2008]奖励关 【状压dp + 数学期望】
    POJ2774 Long Long Message 【后缀数组lcp】
    POJ2406 Power Strings 【KMP 或 后缀数组】
    POJ3261 Milk Patterns 【后缀数组】
    BZOJ3289 Mato的文件管理 【莫队 + 树状数组】
    BZOJ2460 [BeiJing2011]元素 【线性基】
  • 原文地址:https://www.cnblogs.com/diyingyun/p/2794794.html
Copyright © 2020-2023  润新知