42 lines
785 B
TypeScript
42 lines
785 B
TypeScript
import { TreeWalker } from './TreeWalker';
|
|
|
|
export class HTMLNodeTreeWalker extends TreeWalker<Node>
|
|
{
|
|
private static _instance:HTMLNodeTreeWalker;
|
|
|
|
static get $()
|
|
{
|
|
if ( HTMLNodeTreeWalker._instance )
|
|
{
|
|
return HTMLNodeTreeWalker._instance;
|
|
}
|
|
|
|
HTMLNodeTreeWalker._instance = new HTMLNodeTreeWalker();
|
|
return HTMLNodeTreeWalker._instance;
|
|
}
|
|
|
|
parent( node:Node )
|
|
{
|
|
return node.parentNode;
|
|
}
|
|
|
|
childAt( node:Node, index:number )
|
|
{
|
|
if ( Node.ELEMENT_NODE !== node.nodeType )
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return ( node as Element ).childNodes[ index ];
|
|
}
|
|
|
|
numChildren( node:Node ):number
|
|
{
|
|
if ( Node.ELEMENT_NODE !== node.nodeType )
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return ( node as Element ).childNodes.length;
|
|
}
|
|
} |