Foros del Web » Programando para Internet » Jquery »

estoy usando los selectores correctos?

Estas en el tema de estoy usando los selectores correctos? en el foro de Jquery en Foros del Web. Hola amigos del jquery por lo gral ando siempre en la parte de php brindando ayuda pero hoy me toca preguntar. Me he puesto a ...
  #1 (permalink)  
Antiguo 10/02/2014, 20:38
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Pregunta estoy usando los selectores correctos?

Hola amigos del jquery por lo gral ando siempre en la parte de php brindando ayuda pero hoy me toca preguntar. Me he puesto a programar un script para greasemonkey para un conocido juego online, recopilará estadisticas de ataques.

El asunto es el siguiente debo recopilar los resultados que vienen en sucesivas llamadas ajax al leer ciertos mensajes.

El response de la llamada tiene el siguiente formato:
Código HTML:
Ver original
  1. <div class="showmessage" data-message-id="6320846">
  2.     <div class="read messagebox">
  3.     <div class="textCenter contentPageNavi">
  4.             <a href="http://s123-es.ogame.gameforge.com/game/index.php?page=showmessage&msg_id=6319300&mids=%258B6362%25B001%25D3136%25B446%25B5%2580%25D0F%2596%2510%25DA%25C0%2B%2516%2500&cat=5"
  5.           class="icon_link overlay" data-overlay-same="true">
  6.             <span class="icon icon_rewind"></span>
  7.         </a>
  8.         <span class="pagination_txt">
  9.             <strong>1</strong> de <strong>4</strong>
  10.         </span>
  11.         <a href="http://s123-es.ogame.gameforge.com/game/index.php?page=showmessage&msg_id=6319358&mids=%258B6362%25B001%25D3136%25B446%25B5%2580%25D0F%2596%2510%25DA%25C0%2B%2516%2500&cat=5"
  12.           class="icon_link overlay" data-overlay-same="true">
  13.             <span class="icon icon_fastforward"></span>
  14.         </a>
  15.         </div>
  16. ...
  17.  
  18.         <div class="textWrapper">
  19.            
  20.             <div class="note">
  21.         <div class="battlereport">
  22.               <h3 class="textCenter">
  23.                   Informe de batalla              </h3>
  24.               <div class="textCenter">
  25.                   Batalla en <figure class="planetIcon planet tooltip js_hideTipOnMobile" title="Planeta"></figure>CAMEL <a  target="_parent" href="http://s123-es.ogame.gameforge.com/game/index.php?page=galaxy&galaxy=1&system=244&position=4" >[1:244:4]</a> (11.02.2014 03:20:28)              </div>
  26.                 <div class="textBeefy combatants">
  27.                     <div style="width:320px">
  28.                                <div><span class="status_abbr_active">Sha1</span> de <figure class="planetIcon planet tooltip js_hideTipOnMobile" title="Planeta"></figure>A2 <a  target="_parent" href="http://s123-es.ogame.gameforge.com/game/index.php?page=galaxy&galaxy=1&system=151&position=5" >[1:151:5]</a></div>
  29.        
  30.        
  31.                     </div>  
  32.                     <div style="width:40px;">vs</div>
  33.                     <div style="width:320px">
  34.                                <div><span class="status_abbr_longinactive">Pryan</span> de <figure class="planetIcon planet tooltip js_hideTipOnMobile" title="Planeta"></figure>CAMEL <a  target="_parent" href="http://s123-es.ogame.gameforge.com/game/index.php?page=galaxy&galaxy=1&system=244&position=4" >[1:244:4]</a></div>
  35.                                     </div>
  36.                     <br class="clearfloat" />  
  37.                 </div>
  38.              <table cellpadding="0" cellspacing="0" id="shortreport">
  39.                  <tr>
  40.                      <td class="label">
  41.                          Naves/Defensa:
  42.                      </td>
  43.                      <td class="value">
  44.                          1                     </td>
  45.                      <td class="spacer"></td>
  46.                      <td class="label">
  47.                          Naves/Defensa:
  48.                      </td>
  49.                      <td class="value">
  50.                          0                     </td>
  51.                  </tr>
  52.                  <tr>
  53.                      <td class="label">
  54.                          Unidades perdidas:
  55.                      </td>
  56.                      <td class="value">
  57.                          0                     </td>
  58.                      <td></td>
  59.                      <td class="label">
  60.                          Unidades perdidas:
  61.                      </td>
  62.                      <td class="value">
  63.                          0                     </td>
  64.                  </tr>
  65.                  <tr>
  66.                      <td class="label">
  67.                          Armamento:
  68.                      </td>
  69.                      <td class="value">
  70.                          80%
  71.                      </td>
  72.                      <td></td>
  73.                      <td class="label">
  74.                          Armamento:
  75.                      </td>
  76.                      <td class="value">
  77.                          40%
  78.                      </td>
  79.                  </tr>
  80.                  <tr>
  81.                      <td class="label">
  82.                          Escudos:
  83.                      </td>
  84.                      <td class="value">
  85.                          70%
  86.                      </td>
  87.                      <td></td>
  88.                      <td class="label">
  89.                          Escudos:
  90.                      </td>
  91.                      <td class="value">
  92.                          10%
  93.                      </td>
  94.                  </tr>
  95.                  <tr>
  96.                      <td class="label">
  97.                          Cascos:
  98.                      </td>
  99.                      <td class="value">
  100.                          100%
  101.                      </td>
  102.                      <td></td>
  103.                      <td class="label">
  104.                          Cascos:
  105.                      </td>
  106.                      <td class="value">
  107.                          50%
  108.                      </td>
  109.                  </tr>
  110.                  <tr>
  111.                     <td colspan="5">
  112.                         <div class="winner win">
  113.                             <span>
  114.                                 Retirada táctica                            </span>
  115.                             <span class="middlemark">1 : 3.000</span>
  116.                         </div>
  117.                         <div class="retreatText">
  118.                             La flota defensora no ha huido.                            <br/>
  119.                             <span>
  120.                                 (Ten en cuenta que las Estrellas de la muerte, las Sondas de espionaje, los Satélites solares y las flotas de una misión de defensa SAC no pueden huir. Esto también se aplica en caso de que se trate de un combate honorable. Además, la huida puede desactivarse manualmente o verse impedida por falta de deuterio. Los bandidos y los jugadores con más de 500.000 puntos no huyen nunca.)
  121.                             </span>
  122.                         </div>
  123.                     </td>
  124.                 </tr>
  125.                  <tr>
  126.                     <td colspan="5">
  127.                         <div class="winner win">
  128.                             <span>
  129.                                 Vencedor: <span class="status_abbr_active">Sha1</span>                            </span>
  130.                         </div>
  131.                     </td>
  132.                 </tr>
  133.                 <tr>
  134.                 <td colspan="5" class="summary">
  135.                     <table cellpadding="0" cellspacing="0">
  136.                         <tr>
  137.                             <td colspan="4" class="col01">
  138.                                 <span class="textBeefy">
  139.                                     ¡El atacante ha ganado la batalla!                                </span>
  140.                             </td>
  141.                          </tr>
  142.                          <tr>
  143.                             <td class="col01">
  144.                                 <span class="textBeefy">
  145.                                     Botín:
  146.                                 </span>
  147.                             </td>
  148.                             <td colspan="3">
  149.                                 4.971 Metal, 2.461 Cristal y 230 Deuterio.                            </td>
  150.                         </tr>
  151.                         <tr>
  152.                             <td class="col01">
  153.                                 <span class="textBeefy">
  154.                                     Escombros:
  155.                                 </span>
  156.                             </td>
  157.                             <td colspan="3">
  158.                                 0 metal y 0 cristal.                            </td>
  159.                         </tr>
  160.                         <tr>
  161.                             <td class="col01">
  162.                                 <span class="textBeefy">
  163.                                     Reparados/as:
  164.                                 </span>
  165.                             </td>
  166.                             <td colspan="3">
  167.                                 ?                            </td>
  168.                         </tr>
  169.                     </table>
  170.                 </td>
  171.                 </tr>
  172.                 <tr>
  173.                     <td colspan="5" class="textCenter next">
  174.                         <a href="http://s123-es.ogame.gameforge.com/game/index.php?page=combatreport&nID=6320846"
  175.                           class="overlay btn_blue"
  176.                           data-overlay-title="Reporte de batalla detallado"
  177.                           data-overlay-popup-width="700"
  178.                           data-overlay-popup-height="600">
  179.                             Reporte de batalla detallado                        </a>
  180.                     </td>
  181.                 </tr>
  182.               </table>
  183.         </div>        </div>
  184.      
  185.         </div>
  186.    
  187.  
  188. </div></div>

Obviamente no puedo modificar el contenido de ese response, sino solo sería agregar una clase para hacer mas fácil el selector.

Estoy tratando de obtener el contenido del tr que dice 4.971 Metal, 2.461 Cristal y 230 Deuterio.(linea 149) y lo estoy haciendo de la siguiente manera:

Código Javascript:
Ver original
  1. // BOOTY
  2.         console.log($($($(response_content)[2]).find('.summary table tbody tr')[2]));

todos esos $ $ $ me hacen pensar que hay una mejor forma de hacer eso, pero no me llevo tan bien con javascript todavía. Como sería la forma óptima de seleccionar ese elemento??
  #2 (permalink)  
Antiguo 11/02/2014, 06:53
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Respuesta: estoy usando los selectores correctos?

alguna idea ??
  #3 (permalink)  
Antiguo 11/02/2014, 09:46
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 1 mes
Puntos: 265
Respuesta: estoy usando los selectores correctos?

Si solo ponés esto no te funciona?

Código Javascript:
Ver original
  1. $(response_content).find('.summary table tbody tr')[2];

Dando por hecho de que response_content es lo que te ha devuelvo la llamada AJAX.

Saludos.
  #4 (permalink)  
Antiguo 11/02/2014, 16:29
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Respuesta: estoy usando los selectores correctos?

claro, pero response content es un array que en el indice 2 tiene la respuesta por lo tanto

Código Javascript:
Ver original
  1. $(response_content[2]).find('.summary table tbody tr')[2];

debería andar, pero no. El ultimo 2 es porque de los tr necesito el tercero, y despues dentro de ese tr (el tercero) a su vez necesito del array de tds el segundo nuevamente, es por eso que envuelvo nuevamente en jquery, no se que costo (en procesador o tiempo) tiene usar tanto el $() anidado por eso mi pregunta
  #5 (permalink)  
Antiguo 12/02/2014, 01:41
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 1 mes
Puntos: 265
Respuesta: estoy usando los selectores correctos?

Sinceramente yo tampoco se cuánto te puede tardar, pero podés comprobarlo con el console.time de Firebug.

Código Javascript:
Ver original
  1. console.time("example");
  2. console.log($($($(response_content)[2]).find('.summary table tbody tr')[2]));
  3. console.timeEnd("example");

Por ahi te ayude en algunas otras optimizaciones en un futuro.

Saludos.
  #6 (permalink)  
Antiguo 13/02/2014, 07:36
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Respuesta: estoy usando los selectores correctos?

Buenisimo no conocía console.time, gracias. saludos

Etiquetas: selectores, usando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:50.