Como obter um valor de célula de tabela usando jQuery?

Eu estou tentando descobrir como obter o valor da célula da tabela para cada linha usando jQuery.

Minha mesa parece com isso:

Customer Id Result
123
456
789

Basicamente, quero percorrer a tabela e obter o valor da coluna Customer Id do Customer Id para cada linha.

No código abaixo, descobri que preciso fazer isso para obter o loop de cada linha, mas não sei como obter o valor da primeira célula na linha.

 $('#mytable tr').each(function() { var cutomerId = } 

Se puder, pode valer a pena usar um atributo de class no TD que contém o ID do cliente para que você possa escrever:

 $('#mytable tr').each(function() { var customerId = $(this).find(".customerIDCell").html(); }); 

Essencialmente, isso é o mesmo que as outras soluções (possivelmente porque copastei), mas tem a vantagem de que você não precisará alterar a estrutura do seu código se mover pelas colunas ou até mesmo colocar o ID do cliente em um , desde que você mantenha o atributo de class com ele.

A propósito, acho que você poderia fazer isso em um seletor:

 $('#mytable .customerIDCell').each(function() { alert($(this).html()); }); 

Se isso facilitar as coisas

 $('#mytable tr').each(function() { var customerId = $(this).find("td:first").html(); }); 

O que você está fazendo é iterar todos os trs da tabela, encontrar o primeiro td no tr atual e extrair seu html interno.

Para selecionar uma célula específica, você pode referenciá-las com um índice:

 $('#mytable tr').each(function() { var customerId = $(this).find("td").eq(2).html(); }); 

No código acima, eu estarei recuperando o valor da terceira linha (o índice é baseado em zero, então o primeiro índice de célula seria 0)


Veja como você pode fazer isso sem jQuery:

 var table = document.getElementById('mytable'), rows = table.getElementsByTagName('tr'), i, j, cells, customerId; for (i = 0, j = rows.length; i < j; ++i) { cells = rows[i].getElementsByTagName('td'); if (!cells.length) { continue; } customerId = cells[0].innerHTML; } 

Detalhes

uma abordagem menos jquerish:

 $('#mytable tr').each(function() { if (!this.rowIndex) return; // skip first row var customerId = this.cells[0].innerHTML; }); 

isso obviamente pode ser alterado para funcionar com as células não-primeiras.

Tente isso

 $(document).ready(function(){ $(".items").delegate("tr.classname", "click", function(data){ alert(data.target.innerHTML);//this will show the inner html alert($(this).find('td:eq(0)').html());//this will alert the value in the 1st column. }); }); 
 $('#mytable tr').each(function() { // need this to skip the first row if ($(this).find("td:first").length > 0) { var cutomerId = $(this).find("td:first").html(); } }); 

Isso funciona

 $(document).ready(function() { for (var row = 0; row < 3; row++) { for (var col = 0; col < 3; col++) { $("#tbl").children().children()[row].children[col].innerHTML = "H!"; } } }); 

Você não usa id para essa coluna? diz isso:

  
first
second
blah blah blah blah Where the result should occur

tente isto:

 < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   Untitled   
1 2 3 4
5 6 7 8
9 10 11 12
 $(document).ready(function() { var customerId $("#mytable td").click(function() { alert($(this).html()); }); }); 

Um exemplo de trabalho: http://jsfiddle.net/0sgLbynd/

 
0 1 2 3 4 5 6
$(document).ready(function () { //alert("sss"); $("td").each(function () { //alert($(this).html()); $(this).html("aaaaaaa"); }); });