Estoy usando cheerio.js para analizar algunos documentos HTML, pero tengo ciertos problemas.
La cosa es que el archivo HTML que estoy usando contiene el siguiente código:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title> </title> </head> <body> <p>Text 1</p> <p>Text 2</p> </body> </html>Ahora, también tengo una matriz javascript de elementos como este:
var items = ["<h2>orange</h2>", "<h2>mango</h2>"];Lo que quiero hacer es simplemente reemplazar cada etiqueta P con el elemento respectivo en la matriz de elementos, es decir, algo así:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title> </title> </head> <body> <h2>orange</h2> <h2>mango</h2> </body> </html>Lo que probé hasta ahora:
var selections = $("p"); for ( let index = 0; index < selections.length; index++ ) { selections[index].replaceWith(items[index]) }Pero dice que la función replaceWith() no es válida
Solución:
usando cada método, uno puede procesar fácilmente elementos particulares
resolviendo el problema anterior:
var items = ["<h2>orange</h2>", "<h2>mango</h2>"]; $("p").each((index, element) => $(element).replaceWith(items[index])) Básicamente, cada método invocará una función de devolución de llamada donde el elemento es el selector de ese elemento en particular, y el índice es la posición del elemento en esa selección.
Para obtener más referencias, consulte: https://cheerio.js.org/classes/Cheerio.html#each