varios valor tiene seleccionar saber obtener elementos elemento con boton atributo agregar jquery html-table jquery-selectors

tiene - Seleccione el valor de un atributo en jQuery



seleccionar elementos jquery (4)

Iterate cada tr , luego verifica la input la 8th td

var mappedAttributes = $("#table_csrdownloadcenter tr").map(function() { return $("td:eq(7) input", this).attr("name"); }).get();

Esto crea una matriz de cada uno de los valores de atributo de name .

Para crear una cadena:

var str = ""; $("#table_csrdownloadcenter tr").each(function() { str += $("td:eq(7) input", this).attr("name"); })

Tengo la siguiente tabla:

<table summary='''' id=''table_csrdownloadcenter''> <thead> <tr> <th>text1</th> <th>text2</th> <th>text3</th> <th>text4</th> <th>text5</th> <th>text6</th> <th>text7</th> <th>text8</th> </tr> </thead> <tbody> <tr id=''nom_du_pdf''> <td class=''dc-date''></td> <td class=''dc-dl''></td> <td class=''dc-title''></td> <td class=''dc-area''></td> <td class=''dc-category''></td> <td class=''dc-file''></td> <td class=''dc-ranking''></td> <td class=''dc-checkbox''><input type=''checkbox'' name=''chk"+PathFile[i]+"'' ></td> </tr> <tr id=''nom_du_pdf2''> <td class=''dc-date''></td> <td class=''dc-dl''></td> <td class=''dc-title''></td> <td class=''dc-area''></td> <td class=''dc-category''></td> <td class=''dc-file''></td> <td class=''dc-ranking''></td> <td class=''dc-checkbox''><input type=''checkbox'' name=''chk"+PathFile[i]+"'' ></td> </tr> </tbody> <table>

Para cada <tr> me gustaría guardar en una cadena el valor del atributo de nombre en el 8vo <td> Intenté esto:

function DownloadZip() { $(''.DownloadZip'').click(function(){ var res = ""; $(''#table_csrdownloadcenter'').find("tbody").find("tr").find(td:nth-child(8)).find("input").each(function(){ res = $(this).attr("name").text(); alert(res); } }); }

¿Alguien puede ayudarme a hacer que esto funcione?


Puedes usar:

res = $(this).attr("name");

en lugar de:

res = $(this).attr("name").text();

ya que $(this).attr("name") ya le da la cadena que contiene el valor de su atributo de name .

text () es un método jQuery y solo el objeto jQuery puede utilizar ese método, pero $(this).attr("name") da una cadena, por lo que obviamente una cadena no puede aplicar el método jQuery.

También te faltan cotizaciones alrededor de tu selector aquí

find(td:nth-child(8))

Debería ser

find(''td:nth-child(8)'')


Simplemente elimine el método text() , attr("name") devolverá el valor del atributo name, también le falta ""

function DownloadZip() { $(''.DownloadZip'').click(function(){ var res = ""; $(''#table_csrdownloadcenter'').find("tbody").find("tr").find("td:nth-child(8)").find("input").each(function(){ // ---^----- ---^---- res = $(this).attr("name"); alert(res); } }); }


$("td.dc-checkbox").find("input").each(function(){ alert($(this).attr("name")); });