OSDN Git Service

Vesion 0.6.4
[pettanr/clientJs.git] / 0.6.x / js / core / 11_XDom.js
index eb17831..9ad5cf7 100644 (file)
@@ -34,17 +34,13 @@ X.Dom = {
                                var self  = X.Dom,\r
                                        live  = parent.getElementsByTagName( '*' ),\r
                                        nodes = [],\r
-                    node;\r
-                for( var i = 0, l = live.length; i < l; ++i ){\r
-                       nodes[ i ] = live[ i ];\r
+                    node, i;\r
+                for( i = live.length; i; ){\r
+                       nodes[ --i ] = live[ i ];\r
                 };\r
-                               for( i = 0; i < nodes.length; ){\r
-                                       node = nodes[ i ];\r
-                                       if( node.nodeType !== 1 || self.hasClassName( node, className ) === false ){\r
-                                               nodes.splice( i, 1 );\r
-                                       } else {\r
-                                               ++i;\r
-                                       };\r
+                               for( i = nodes.length; i; ){\r
+                                       node = nodes[ --i ];\r
+                                       ( node.nodeType !== 1 || !node.className || !node.className.length || self.hasClass( node, className ) === false ) && nodes.splice( i, 1 );\r
                                };\r
                                return nodes;\r
                        }) :\r
@@ -53,17 +49,13 @@ X.Dom = {
                                var self  = X.Dom,\r
                                        live  = parent.all,\r
                                        nodes = [],\r
-                    node;\r
-                for( var i = 0, l = live.length; i < l; ++i ){\r
-                       nodes[ i ] = live[ i ];\r
+                    node, i;\r
+                for( i = live.length; i; ){\r
+                       nodes[ --i ] = live[ i ];\r
                 };\r
-                               for( i = 0; i < nodes.length; ){\r
-                                       node = nodes[ i ];\r
-                                       if( !node.className || !node.className.length || self.hasClassName( node, className ) === false ){\r
-                                               nodes.splice( i, 1 );\r
-                                       } else {\r
-                                               ++i;\r
-                                       };\r
+                               for( i = nodes.length; i; ){\r
+                                       node = nodes[ --i ];\r
+                                       ( !node.className || !node.className.length || self.hasClass( node, className ) === false ) && nodes.splice( i, 1 );\r
                                };\r
                                return nodes;\r
                        }) :\r
@@ -80,19 +72,6 @@ X.Dom = {
                };\r
                return true;\r
        },\r
-       createElement :\r
-               document.createElement ?\r
-                       (function( tagName ){\r
-                               return document.createElement( tagName );\r
-                       }) :\r
-               document.all ?\r
-                       (function( tagName ){\r
-                               document.body.insertAdjacentHTML( 'BeforeEnd', '<' + tagName + '>gggg<\/' + tagName + '>' );\r
-                               var list = document.all.tags( tagName.toUpperCase() ),\r
-                                       ret  = list[ list.length - 1 ];\r
-                               return list;\r
-                       }) :\r
-                       (function(){}),\r
        appendChild :\r
                document.appendChild ?\r
                        (function( target, elm ){\r
@@ -110,25 +89,21 @@ X.Dom = {
                        }) :\r
                document.all ?\r
                        (function( parent, elm ){\r
-                               var children = parent.children,\r
-                                       i        = 0,\r
+                               var children = X.Dom.getChildNodes( parent ),\r
                                        l        = children.length,\r
                                        html     = [],\r
+                                       i        = 0,\r
                                        child, update;\r
-                               if( i === 1 ){\r
-                                       parent.innerHTML = '';\r
-                                       return;\r
-                               };\r
                                for( ; i < l; ++i ){\r
                                        child = children[ i ];\r
                                        if( child !== elm ){\r
-                                               html[ html.length ] = child.outerHTML;\r
+                                               html[ html.length ] = child.outerHTML || child;\r
                                        } else {\r
                                                update = true;\r
                                        };\r
                                };\r
                                if( !update ) return;\r
-                               parent.innerHTML = html.join('');\r
+                               parent.innerHTML = html.join( '' );\r
                        }) :\r
                        (function(){}),\r
        insertBefore :\r
@@ -138,7 +113,7 @@ X.Dom = {
                        }) :\r
                document.all ?\r
                        (function( parent, elm, elmAfter ){\r
-                               return elmAfter.insertAdjacentHTML( 'BeforeBegin', '<' + elm.tagName + ' class="list">' + elm.innerHTML + '<\/' + elm.tagName + '>' );\r
+                               return elmAfter.insertAdjacentHTML( 'BeforeBegin', elm.outerHTML );\r
                        }) :\r
                        (function(){})\r
 };\r