【发布时间】:2010-07-07 23:39:18
【问题描述】:
我有一个带有“标题”的表格,用户使用常规 tr 标签(不是 th)。我需要找到标题“Col2”,然后在 Col2 下的每个单元格中添加一个锚点。我可以做$("td:contains('Col2')) 来查找标题,但数据行也可能有“Col2”。如何只搜索第一行然后循环遍历行单元格?
<table>
<tr>
<td>Col1</td>
<td>Col2</td>
</tr>
<tr>
<td>Data1</td>
<td>Data2</td>
</tr>
<tr>
<td>Data3</td>
<td>Data4</td>
</tr>
</table>
变成:
<table>
<tr>
<td>Col1</td>
<td>Col2</td>
</tr>
<tr>
<td>Data1</td>
<td><a href="?Data2">Data2</a></td>
</tr>
<tr>
<td>Data3</td>
<td><a href="?Data4">Data4</a></td>
</tr>
</table>
编辑:我实际上在同一页面中有多个表格。 :first 只匹配第一个表中的第一行。
更新:这是我最终得到它的方法。感谢大家的帮助!从你们每个人那里得到一点,从 API 文档中得到一点,它就可以工作。现在我开始掌握它的窍门,我无法想象没有 jQuery 做这件事的痛苦。
$('table').each(function(i, table) {
$(table).find('tr:first > td:contains("Col2")').each(function() {
var cellIndex = $(this).index() + 1;
$(table).find('tr:not(:first) > td:nth-child(' + cellIndex + ')').wrapInner(function() {
return $('<a />', { 'href': '?data=' + $(this).text() });
});
});
});
【问题讨论】: