在jQuery中选择属性的值

我有下表:

text1 text2 text3 text4 text5 text6 text7 text8

对于每个

我想在第8个

保存字符串中name属性的值我试过这个:

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

任何人都可以帮助我使这个工作吗?

迭代每个tr ,然后检查第8th td的input

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

这将创建每个name属性值的数组。

要创建一个字符串:

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

只需删除text()方法, attr("name")将返回name属性的值,同样缺少""

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

您可以使用:

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

代替:

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

因为$(this).attr("name")已经为您提供了包含name属性值的字符串。

text()是一个jQuery方法,只有jQuery对象可以使用该方法,但是$(this).attr("name")给你一个字符串,所以显然字符串不能应用jQuery方法。

此外,您在选择器周围缺少引号

 find(td:nth-child(8)) 

它应该是

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