Llamo a una función con un montón de métodos anidados, estoy usando herramientas de raspado web llamadas cheerio y quiero sacar el texto, así que necesito llamar a un montón de funciones. aquí está mi código de ejemplo.
var text = $(el) .children() .first() .children() .first() .children() .first() .text() .replace(/\s\s+/g, " ");Mi pregunta es, ¿cómo puedo simplificar mi función para obtener el mismo resultado sin encadenar mi función?
Una solución ingenua podría ser
var text = $(">*:nth-child(1)".repeat(3), el).text().replace(/\s+/g, " ");Para una buena solución necesitaríamos más contexto. Como se ve el marcado.
Puede usar el selector nth-child(1) para seleccionar el primer hijo.
Puedes usar así
$("div div:nth-child(1) div:nth-child(1) ul:nth-child(1)").text()usa un bucle
let child = $(el).children().first() if (child) { while (child.children().first()) { child = child.children().first() } child.text().replace(/\s\s+/g, " "); }