valor una tabla seleccionada recorrer obtener filas fila dentro celda jquery

una - ¿Cómo obtener un valor de celda de tabla utilizando jQuery?



obtener valor de td jquery (10)

Estoy tratando de averiguar cómo obtener el valor de la celda de la tabla para cada fila usando jQuery.

Mi mesa se ve así:

<table id="mytable"> <tr> <th>Customer Id</th> <th>Result</th> </tr> <tr> <td>123</td> <td></td> </tr> <tr> <td>456</td> <td></td> </tr> <tr> <td>789</td> <td></td> </tr> </table>

Básicamente, quiero recorrer la tabla y obtener el valor de la columna Customer Id para cada fila.

En el código que aparece a continuación, he resuelto que debo hacer esto para que se repita en cada fila, pero no estoy seguro de cómo obtener el valor de la primera celda de la fila.

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


¿Y no usas id para esa columna? dilo:

<table width="300" border="1"> <tr> <td>first</td> </tr> <tr> <td>second</td> </tr> <tr> <td>blah blah</td> <td>blah blah</td> <td id="result">Where the result should occur</td> </tr> </table> <script type="text/javascript"> $(''#result'').html("The result is...."); </script>


Esto 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!"; } } });


Prueba esto,

$(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. }); });


Si puede, podría valer la pena usar un atributo de clase en el TD que contiene el ID de cliente para que pueda escribir:

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

Esencialmente, esto es lo mismo que las otras soluciones (posiblemente porque hice un copiado), pero tiene la ventaja de que no necesitará cambiar la estructura de su código si se mueve alrededor de las columnas, o incluso coloca la ID del cliente en un <intervalo >, siempre que mantengas el atributo de clase con él.

Por cierto, creo que podrías hacerlo en un selector:

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

Si eso facilita las cosas.


Un ejemplo de trabajo: http://jsfiddle.net/0sgLbynd/

<table> <tr> <td>0</td> <td class="ms-vb2">1</td> <td class="ms-vb2">2</td> <td class="ms-vb2">3</td> <td class="ms-vb2">4</td> <td class="ms-vb2">5</td> <td class="ms-vb2">6</td> </tr> </table> $(document).ready(function () { //alert("sss"); $("td").each(function () { //alert($(this).html()); $(this).html("aaaaaaa"); }); });


prueba esto :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> <script type="text/javascript"><!-- function getVal(e) { var targ; if (!e) var e = window.event; if (e.target) targ = e.target; else if (e.srcElement) targ = e.srcElement; if (targ.nodeType == 3) // defeat Safari bug targ = targ.parentNode; alert(targ.innerHTML); } onload = function() { var t = document.getElementById("main").getElementsByTagName("td"); for ( var i = 0; i < t.length; i++ ) t[i].onclick = getVal; } </script> <body> <table id="main"><tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr><tr> <td>5</td> <td>6</td> <td>7</td> <td>8</td> </tr><tr> <td>9</td> <td>10</td> <td>11</td> <td>12</td> </tr></table> </body> </html>


un enfoque menos absurdo:

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

esto obviamente se puede cambiar para que funcione con celdas que no sean las primeras.


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

Lo que estás haciendo es iterar a través de todos los trs en la tabla, encontrar el primer td en el tr actual en el bucle y extraer su html interno.

Para seleccionar una celda en particular, puede hacer referencia a ellos con un índice:

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

En el código anterior, recuperaré el valor de la tercera fila (el índice se basa en cero, por lo que el índice de la primera celda sería 0)

Así es como puedes hacerlo sin 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; }

Al aire libre


$(''#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(); } });


$(document).ready(function() { var customerId $("#mytable td").click(function() { alert($(this).html()); }); });