¿Cómo puedo hacer un selector o un algoritmo para devolver el valor del índice de fila con el texto de un lapso?
Código HTML:
<div class="container"> <div row-index="0"> <div> <div> <span> <div> <span> Test1234 </span> </div> </span> </div> </div> </div> <div row-index="1"> <div> <div> <span> <div> <span> 1234test </span> </div> </span> </div> </div> </div> </div>Resultado esperado: getIndex("1234test"); //devolverá 1 porque índice-fila='1'
Todo lo que intenté no me ayudó a llegar a la solución final, ¿podrá sugerirme una solución o darme algún consejo? Realmente no sé ni por dónde empezar
Creo que la forma más fácil es usar xpath para resolver el problema.
Vamos a crear una función para eso:
async function getRowIndexBy(text) { const element = await $(`.//span[normalize-space()='${text}']/ancestor::div[@row-index]`); return element.getAttribute('row-index'); }Uso:
await getRowIndexBy('1234test'); // will return '1' Esta función encontrará el elemento abuelo (es div con atributo row-index en su caso) del elemento que fue encontrado por texto ( span en su caso) y devolverá el valor del atributo row-index .
Probado contra HTML proporcionado: