在jQuery中选择属性的值
Posted
技术标签:
【中文标题】在jQuery中选择属性的值【英文标题】:Select the value of an attribute in jQuery 【发布时间】:2014-03-28 01:02:35 【问题描述】:我有下表:
<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>
对于每个 <tr>
我想将第8个<td>
中的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);
);
谁能帮我完成这个工作?
【问题讨论】:
【参考方案1】:只需删除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);
);
【讨论】:
【参考方案2】:你可以使用:
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)')
【讨论】:
【参考方案3】:迭代每个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");
)
【讨论】:
谢谢,它就像一个魅力,但如果我想获得选中复选框的名称,我试图写 input:checked 但它不起作用......有什么想法吗?谢谢【参考方案4】:$("td.dc-checkbox").find("input").each(function()
alert($(this).attr("name"));
);
【讨论】:
以上是关于在jQuery中选择属性的值的主要内容,如果未能解决你的问题,请参考以下文章