He estado investigando sobre el treewalker y el objeto rango... y me ha llevado varias horas comprenderlo (es realmente impresionante, sobre todo el primero de ellos). Pero no logro masticar estas líneas:
Código Javascript
:
Ver originalfunction(node) {
var nodeRange = document.createRange();
nodeRange.selectNode(node);
return nodeRange.compareBoundaryPoints(Range.END_TO_END, range) < 1 ?
NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
}
Sé que es el tercer parámetro del treewalker, para filtrar el elemento, e incluirlo o no. Todo eso bien, pero me pierdo en los rangos... no sé qué se está haciendo ahí exactamente, y me gustaría comprenderlo... simplemene por saber lo que estoy haciendo.
Link hacia el código completo: http://jsfiddle.net/timdown/2YcaX/3/
Gracias.