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
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
};\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
}) :\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
}) :\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