2012-03-22 17 views
10

Hola tengo mesa en una td i tener texto y en otro td tengo Botón de selecciónusando jQuery seleccionar texto td anterior

arriba en hacer clic en el botón de selección, necesito seleccionar el texto de inmediato anterior td texto.

Sé que puedo hacerlo con .prev() pero no estoy familiarizado con ese método, ¿alguien me puede ayudar con eso?

mi guión

function ReLoadMedications(mid) { 
     var ProductName = "This shouled get the value of prev td text"; 
     var dea = $("input[type='button'][mid='"+mid+"']").attr('id'); 
     var mid = $("input[type='button'][mid='" + mid + "']").attr('mid'); 
     var form = $("input[type='button'][mid='" + mid + "']").attr('form'); 
     var href = $("input[type='button'][mid='" + mid + "']").attr('href'); 
     var con = false; 
     var fax = false; 
     alert(ProductName + "\n" + dea + "\n" + mid + "\n" + form + "\n" + href + "\n" + con + "\n" + fax); 
}​ 

tengo mi código de aquí en JS Fiddle, y también por debajo:

<div class="t-widget t-grid" id="TherapeuticAltGrid"> 
    <table cellspacing="0"> 
    <colgroup><col style="width:200px"><col></colgroup> 
    <thead class="t-grid-header"> 
    <tr> 
     <th class="t-header" scope="col" style="display:none"> 
      <a class="t-link" href="/BenefitsFormulary/HealthPlanInformation?PatientID=17&amp;MedicationID=6235&amp;MedicationName=LIPITOR%20EQ%2010MG%20BASE%20TABLET&amp;isFax=false&amp;form=TABLET&amp;TherapeuticAltGrid-orderBy=MedicationID-asc">Medication ID</a> 
     </th> 
     <th class="t-header" scope="col"> 
      <a class="t-link" href="/BenefitsFormulary/HealthPlanInformation?PatientID=17&amp;MedicationID=6235&amp;MedicationName=LIPITOR%20EQ%2010MG%20BASE%20TABLET&amp;isFax=false&amp;form=TABLET&amp;TherapeuticAltGrid-orderBy=Medication-asc">Medication</a> 
     </th> 
     <th class="t-header" scope="col"> 
      <span class="t-link">&nbsp;</span> 
     </th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td style="display:none;"> 
      1147 
     </td> 
     <td> 
      DACTINOMYCIN INJECTABLE 0.5MG/VIAL 
     </td> 
     <td class="t-last"> 
      <input type="button" value="Select" class="MedicationClicked button" mid="1147" id="0" form="INJECTABLE" onclick="ReLoadMedications(1147)"> 
     </td> 
    </tr> 
    <tr class="t-alt"> 
     <td style="display:none;"> 
      1439 
     </td> 
     <td> 
      PROVENTIL SOLUTION EQ 0.5% BASE 
     </td> 
     <td class="t-last"> 
      <input type="button" value="Select" class="MedicationClicked button" mid="1439" id="0" form="SOLUTION" onclick="ReLoadMedications(1439)"> 
     </td> 
    </tr> 
    <tr> 
     <td style="display:none;"> 
      1605 
     </td> 
     <td> 
      EMETE-CON INJECTABLE EQ 50MG BASE/VIAL 
     </td> 
     <td class="t-last"> 
      <input type="button" value="Select" class="MedicationClicked button" mid="1605" id="0" form="INJECTABLE" onclick="ReLoadMedications(1605)"> 
     </td> 
    </tr> 
    </tbody> 
    </table> 
    <div class="t-grid-pager t-grid-bottom"> 
     <div class="t-status"> 
      <a class="t-icon t-refresh" href="/BenefitsFormulary/HealthPlanInformation?PatientID=17&amp;MedicationID=6235&amp;MedicationName=LIPITOR%20EQ%2010MG%20BASE%20TABLET&amp;isFax=false&amp;form=TABLET">Refresh</a> 
     </div> 
     <div class="t-pager t-reset"> 
      <a class="t-link t-state-disabled" href="#"><span class="t-icon t-arrow-first">first</span></a><a class="t-link t-state-disabled" href="#"><span class="t-icon t-arrow-prev">prev</span></a> 
      <div class="t-numeric"> 
       <span class="t-state-active">1</span><a class="t-link">2</a><a class="t-link">3</a><a class="t-link">4</a><a class="t-link">5</a><a class="t-link">6</a><a class="t-link">7</a><a class="t-link">8</a><a class="t-link">9</a><a class="t-link">10</a><a class="t-link">...</a> 
      </div> 
      <a class="t-link" href="#"><span class="t-icon t-arrow-next">next</span></a><a class="t-link" href="#"><span class="t-icon t-arrow-last">last</span></a> 
     </div> 
     <div class="t-status-text"> 
      Displaying items 1 - 3 of 41 
     </div> 
    </div> 
</div> 

+0

Sería de gran ayuda si desea dar formato al HTML y también puesto que en su pregunta. –

+0

¡No podemos adivinar cómo es tu estructura DOM! publicar el ** HTML ** procesado ** ' – gdoron

+1

Editado para agregar el [embellecido] (http://tools.arantius.com/tabifier) ​​html a la página, y actualizado el enlace para publicar en un embellecido [JS Fiddle] (http://jsfiddle.net/davidThomas/jS56H/16/). –

Respuesta

25

modificar su código en línea como

onclick="ReLoadMedications(1147,this) 

y la función

function ReLoadMedications(mid,$this) { 
    console.log($this); 
    var pn = $($this).closest('td').prev('td').text(); 
    console.log(pn); 
    //rest of your code 

DEMO

1

solución más fácil sería como dijo, modificar su código en línea a excepto this

Luego, en su código que puede hacer fácilmente

var ProductName = $(ele).parent().prev().text(); 

donde ele, es su parámetro en su función function ReLoadMedications(mid, ele)

, entonces también puede reemplazar:

var dea = $("input[type='button'][mid='"+mid+"']").attr('id'); 
    var mid = $("input[type='button'][mid='" + mid + "']").attr('mid'); 
    var form = $("input[type='button'][mid='" + mid + "']").attr('form'); 
    var href = $("input[type='button'][mid='" + mid + "']").attr('href'); 
    var con = false; 
    var fax = false; 

con

var dea = $(ele).attr("id"); 
    var mid = $(ele).attr("mid"); 
    var form = $(ele).attr("form"); 
    var href = $(ele).attr("href"); 
    var con = false; 
    var fax = false; 
Cuestiones relacionadas