У меня есть таблица с идентификатором заголовка. Мне нужно выбрать все поля в этом заголовке. У меня нет доступа к исходному коду, и в этой таблице не используются классы. Любая идея о том, как это сделать?jQuery: Как выбрать значения из столбца таблицы только на основе заголовков таблиц
4
A
ответ
1
Вы должны использовать фильтр: eq (index).
После определения индекса столбца, который требуется выбрать (назовем его idx
), вы можете сделать:
$('#yourTableID tr').each(function(){
// for each row:
var myField = $(this).children('td:eq('+idx+')');
// do stuff with the selected field
});
6
Чтобы получить первый столбец:
$(function() {
var col = $("td:nth-child(1)");
});
+0
Мне нравится чистота jQuery. Отличный ответ. –
2
Наиболее простой будет чтобы получить позицию (индекс) заголовка в строке, а затем получить доступ ко всем ячейкам в одном столбце.
$('#table th').click(function() {
var th = $(this);
var index = $('th', th.parents('tr')).index(th);
var column = $('tbody td:nth-child(' + (index + 1) + ')', th.parents('table'));
var values = column.map(function() {
return $(this).text();
});
alert($.makeArray(values));
});
, который основан на этом примере:
<table id="table">
<thead>
<tr><th>head1</th><th>head2</th><th>head3</th></tr>
</thead>
<tbody>
<tr><td>cell1a</td><td>cell2a</td><td>cell3a</td></tr>
<tr><td>cell1b</td><td>cell2b</td><td>cell3b</td></tr>
<tr><td>cell1c</td><td>cell2c</td><td>cell3c</td></tr>
</tbody>
</table>
Это выбирает только ТД один на один раз. И петля может быть массивной для большой таблицы. –
Согласовано, а не решение. Очень неэффективный способ обойти это. – redsquare