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