web-dev-qa-db-fra.com

utiliser jQuery Sélectionner le texte td précédent

Salut j'ai table dans un td j'ai du texte et dans un autre td i ont le bouton de sélection

haut en cliquant sur le bouton de sélection, je dois sélectionner le texte de immédiatement précédent td text .

Je sais que je peux le faire avec .prev (), mais je ne suis pas familier avec cette méthode. Quelqu'un peut-il m'aider?.

mon script

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);
}​

J'ai mon code ici à JS Fiddle , et aussi ci-dessous:

<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>

Un séjour sans faille

11
HaBo

modifier votre code en ligne comme

onclick="ReLoadMedications(1147,this)

et la fonction

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

D&EACUTE;MO

31
Rafay

La solution la plus simple serait, comme il l'a dit, de modifier votre code en ligne à l'exception de this

Ensuite, dans votre code, vous pouvez facilement faire

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

où ele est votre paramètre dans votre fonction function ReLoadMedications(mid, ele)

Ensuite, vous pouvez également remplacer:

    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;

avec

    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;
1
SpYk3HH