Actualmente estoy extrayendo contenido html de ckeditor. Normalmente se ve como Categoría 1 Noticias 1 (enlace> Contenido de noticias John: Este es mi comentario Noticias 2 (enlace> Contenido de noticias Mark: Este es mi comentario ...

1
Binita Gyawali 4 mar. 2021 a las 14:40

1 respuesta

La mejor respuesta

Ok, su código no funcionó para mí en absoluto, así que escribí desde cero ... también para cada tabla (los 2 elementos de la tabla superior que repiten la misma estructura al entrar) les di un className llamado {{X0 }}

En cuanto a cómo funciona el siguiente código ... Hice 2 funciones, una que obtiene las cosas de cada tabla superior y la otra que devuelve los datos en el formato solicitado ( LA SOLUCIÓN ). Esperaba que esto ayudara: D

let tableCon = document.getElementsByClassName("tableClass")
function results(elem){
  let newsTitles=[]; let newsContents=[]
  for(let i=0;i<8;i++){elem=elem.children[0]}
  let category=elem.children[0].innerText
  for(let i=1;i<elem.children.length;i++){
    let element=elem.children[i]
    newsTitles.push(element.children[0].children[0].innerText)
    newsContents.push(element.children[1].innerText)
  }
  return [category,newsTitles,newsContents]
}

function newsObj(table){
  let obj={}
  for(let i=0;i<table.length;i++){
    let tempObj={}
    let [category,newsTitles,newsContents]=results(table[i])
    obj[category]=tempObj
    for(let j=0;j<newsTitles.length;j++){
      tempObj[newsTitles[j]]=newsContents[j]
      //change the above line to the commented line below to have stuff like "News 1" where stuff like "Content..." are
      //tempObj[newsTitles[j]]=newsTitles[j]
    }
  }
  return obj
}
console.log(newsObj(tableCon))
<table class="tableClass">
  <tbody>
    <tr> <td>
      <table>
        <tr>
          <td>
            <div>
              <p style ="color:red">Category 1 </p>
                <p style ="color:black">
                  <a href="abc.com"> <font>News 1 </font></a> <font>Content...</font>
                  <br>
                  <i>John </i><font><i>This is my comment </i></font> 
               </p>
               <p style ="color:black">
                 <a href="abc.com"> <font>News 2 </font></a> <font>Content...</font>
                  <br>
                  <i>Mark </i><font><i>This is my comment </i></font> 
               </p>
             </div>
           </td>
          </tr>
         </table>
      </td>
     </tr>
   </table>
<table class="tableClass">
  <tbody>
    <tr> <td>
      <table>
        <tr>
          <td>
            <div>
              <p style ="color:red">Category 2 </p>
               <p style ="color:black">
                 <a href="abc.com"> <font>News 3 </font></a> <font>Content...</font>
                  <br>
                  <i>John </i><font><i>This is my comment </i></font> 
               </p>
               <p style ="color:black">
                 <a href="abc.com"> <font>News 4 </font></a> <font>Content...</font>
                  <br>
                  <i>Mark </i><font><i>This is my comment </i></font> 
               </p>
             </div>
           </td>
          </tr>
         </table>
      </td>
     </tr>
</table>
1
The Bomb Squad 4 mar. 2021 a las 13:27