var el = clickedElement; var chl = el.closest('li'); var prt = chl.parentNode; var idx = Array.prototype.indexOf.call(prt.children, chl);Estoy usando este código para obtener el número de índice de clickedElement del parentNode... funciona la mayor parte del tiempo... quiero poder filtrar algunos elementos del número de índice
Por ejemplo..
li.zero li.first h2 li.secondSi pruebo este código para obtener li.segundo elemento como índice 2, me da el índice '3' debido a esa etiqueta h3 en el medio. ¿Cómo puedo excluir ciertos elementos del conteo?
Podría usar el método Array.prototype.filter .
Podría verse algo como esto:
var idx = Array.prototype.indexOf.call( Array.from(prt.children) .filter(domNode => domNode.tagName.toLowerCase() === "li"), chl );Ahora solo verificará el índice para elementos de elementos de lista.