У меня есть таблица с «заголовком», которую пользователь использует обычные теги 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() });
});
});
});