2012-06-26 11 views
7

Ciao ragazzi Ho un problema semplice sto cercando di ottenere i valori da una riga della tabella html. figlio quando clicco sulla riga della tabella pulsante di eliminazione voglio mettere quei valori sulle variabili da inviare al server. Ho trovato qualcosa da qui http://jsbin.com/ihaqe6 che assomiglia a quello che ho bisogno ma quando lo metto insieme per il mio scenario non funziona.ottenere i valori della riga tabella con jquery

ecco la tabella html.

<table id='thisTable' class='disptable' style='margin-left:auto;margin-right:auto;' > 
    <tr> 

    <th>Fund</th> 
    <th>Organization</th> 
    <th>Access</th> 
    <th>Delete</th> 
    </tr> 
    <tr> 
    <td class='fund'>100000</td><td class='org'>10110</td><td>OWNED</td><td><a class='delbtn'ref='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67130</td><td>OWNED</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>170252</td><td class='org'>67130</td><td>OWNED</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67150</td><td>PENDING ACCESS</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67120</td><td>PENDING ACCESS</td><td><a class='delbtn' href='#'>X</a> 
    </td> 
    </tr> 

ed ecco il jQuery.

var tr = $('#thisTable').find('tr'); 
     tr.bind('click', function(event) { 
      //var values = ''; 
      // tr.removeClass('row-highlight'); 
      var tds = $(this).addClass('row-highlight').find('td'); 

      $.each(tds, function(index, item) { 
       values = values + 'td' + (index + 1) + ':' + item.innerHTML + '<br/>'; 
       alert(values); 
      }); 
      alert(values); 

     }); 

cosa sto facendo di sbagliato? Continuo a guardare esempi ma non riesco a farlo funzionare.

Miguel

+0

E che cosa vi aspettate l'uscita di essere, da quel campione HTML? –

+0

Cosa mostra l'avviso? –

+0

mi aspettavo che i valori della riga su cui si fa clic per essere avvisati siano concatenati. almeno per iniziare. – Miguel

risposta

12

Prova questo:

jQuery('.delbtn').on('click', function() { 
    var $row = jQuery(this).closest('tr'); 
    var $columns = $row.find('td'); 

    $columns.addClass('row-highlight'); 
    var values = ""; 

    jQuery.each($columns, function(i, item) { 
     values = values + 'td' + (i + 1) + ':' + item.innerHTML + '<br/>'; 
     alert(values); 
    }); 
    console.log(values); 
}); 

DEMO

+0

Grazie ricardo. Devo apprezzare per questa risposta. Mi tormentavo per ore. – Miguel

+0

@ Miguel. Prego. :) –

+0

le persone devono usare $ invece di jQuery – tibi

5

Dare qualcosa di simile a questo una prova:

$(document).ready(function(){ 
    $("#thisTable tr").click(function(){ 
     $(this).find("td").each(function(){ 
      alert($(this).html()); 
     }); 
    }); 
});​ 

Ecco un violino del codice in azione: http://jsfiddle.net/YhZsW/

+0

Voglio solo che la funzione mi dia il valore della riga cliccata e non dell'intera tabella. questo è dove mi sto bloccando. – Miguel

+0

Ciao, il violino e il codice sono stati aggiornati :) Ho appena cambiato "ciascuno" in "click" –

0

Here is a working example. Ho cambiato il codice in output in un div anziché in una finestra di avviso. Il tuo problema era item.innerHTML Credo. Io uso invece la funzione jQuery html che sembra risolvere il problema.

<table id='thisTable' class='disptable' style='margin-left:auto;margin-right:auto;' > 
    <tr> 

    <th>Fund</th> 
    <th>Organization</th> 
    <th>Access</th> 
    <th>Delete</th> 
    </tr> 
    <tr> 
    <td class='fund'>100000</td><td class='org'>10110</td><td>OWNED</td><td><a class='delbtn'ref='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67130</td><td>OWNED</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>170252</td><td class='org'>67130</td><td>OWNED</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67150</td><td>PENDING ACCESS</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67120</td><td>PENDING ACCESS</td><td><a class='delbtn' href='#'>X</a> 
    </td> 
    </tr> 
</table> 
<div id="output"></div>​ 

il javascript:

$('#thisTable tr').on('click', function(event) {  
    var tds = $(this).addClass('row-highlight').find('td'); 
    var values = ''; 
    tds.each(function(index, item) {   
     values = values + 'td' + (index + 1) + ':' + $(item).html() + '<br/>'; 
    }); 
    $("#output").html(values); 
}); 
+0

scusa Jhon la tua soluzione non ha funzionato per me? Non sono sicuro del perché. Ho cambiato $ ("# output"). Html (valori); per avvisare (valori) e non fa nulla. La soluzione Ricardo sembra farlo. – Miguel

0

Tutti elementi

$('#tabla > tbody > tr').each(function() { 
    $(this).find("td:gt(0)").each(function(){ 
     alert($(this).html()); 
     }); 
}); 
-1
$(document).ready(function() { 
     $("#tbl_Customer tbody tr .companyname").click(function() { 

      var comapnyname = $(this).closest(".trclass").find(".companyname").text(); 
      var CompanyAddress = $(this).closest(".trclass").find(".CompanyAddress").text(); 
      var CompanyEmail = $(this).closest(".trclass").find(".CompanyEmail").text(); 
      var CompanyContactNumber = $(this).closest(".trclass").find(".CompanyContactNumber").text(); 
      var CompanyContactPerson = $(this).closest(".trclass").find(".CompanyContactPerson").text(); 
      // var clickedCell = $(this); 
      alert(comapnyname); 
      alert(CompanyAddress); 
      alert(CompanyEmail); 
      alert(CompanyContactNumber); 
      alert(CompanyContactPerson); 

      //alert(clickedCell.text()); 
     }); 
    }); 
+0

.nella parte clic cella del nome dell'azienda. .trclass significa tr class name .In trova la doppia quotazione è ogni nome di classe td ... Sta funzionando bene –

Problemi correlati