Me gustaría apuntar a todos los <p> y convertirlos en una matriz. Probé el operador de propagación, Array.from o usando métodos como .split() o .splice() . Pero parece que el problema es encontrar el objetivo correcto y entender cómo operar con el objeto-texto Element que aún no tengo...
const targetDates = document.querySelector('.data'); console.log(targetDates.childNodes.entries) <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>Document</title> </head> <body> <p id="dates" class="data"> 1429 1368 1661 1687 1593 1495 1565 1500 1635 </p> <script src="app.js"></script> </body> </html>Ese elemento tiene un único nodo secundario, que es un nodo de texto.
const p = document.querySelector('#dates'); console.log(p.childNodes.length); <p id="dates" class="data"> 1429 1368 1661 1687 1593 1495 1565 1500 1635 </p> En tal caso, generalmente es más fácil usar .textContent para recuperar solo el texto dentro del elemento, y luego puede manipular el texto para procesar los números como desee, como dividir por saltos de línea o hacer coincidir números en la cadena con una expresión regular:
const p = document.querySelector('#dates'); const nums = p.textContent.match(/\d+/g); for (const num of nums) { console.log(num); } <p id="dates" class="data"> 1429 1368 1661 1687 1593 1495 1565 1500 1635 </p> const targetDates = document.querySelector('.data'); const textData=targetDates.childNodes[0].textContent; const finalTextData=textData.trim().split('\n');//using trim() because the of the first blank space const newValue=finalTextData.map(item=>item.trim()) Entonces, con .textcontent puede acceder al contenido de <p> , luego debe eliminar el espacio en blanco al principio a través trim() y dividirlos en la base de '\n' que es Enter . Aunque puede encontrar RegExp para resolver el problema, también puede resolver este problema con estos pasos