Найти ячейку таблицы, которая знает строки и идентификаторы столбцов с помощью jQuery
У меня есть простая таблица, где у меня установлены идентификаторы для заголовков и идентификаторов для строк. Учитывая идентификатор для обоих, мне нужно найти соответствующую ячейку на пересечении этих двух.
Пример:
<table id="tablica">
<thead>
<th id="bla">Bla</th>
<th id="bli">Bli</th>
<th id="blu">Blu</th>
</thead>
<tbody>
<tr id="jedan">
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr id="dva">
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
<tr id="tri">
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
</tbody>
</table>
Итак, если у меня есть id = "bli" и id = "dva", это означает, что я хочу что-то сделать с ячейкой, имеющей значение 5 в этом примере.
edit: Есть много правильных ответов, я все их оптимизировал, но, к сожалению, я могу выбрать только правильный.
Ответы
Ответ 1
Вот мое решение:
var column = $('#bli').index();
var cell = $('#dva').find('td').eq(column);
И рабочий пример на jsfiddle: http://jsfiddle.net/t8nWf/2/
добавлено все в функцию:
function getCell(column, row) {
var column = $('#' + column).index();
var row = $('#' + row)
return row.find('td').eq(column);
}
Рабочий пример: http://jsfiddle.net/t8nWf/5/
Ответ 2
Если у вас есть идентификатор строки, вы можете выбрать столбец с данными 5.
$("#dva").find("td:contains(5)").css({"background-color":"red"});
Также ссылайтесь на эту скрипту в качестве рабочего примера.
ИЗМЕНИТЬ
Не зная id строки, у вас есть только идентификатор для таблицы, вы также можете найти ячейку:
$("#tablica tr").find("td:contains(5)").css({"background-color":"red", "padding":"5px"});
Рабочий пример
Ответ 3
$('#dva > td').eq($('#bli').index()); // returns the td element
должен работать. Рабочий пример:
http://jsbin.com/acevon/edit#javascript,html,live
Ответ 4
Это даст вам элемент TD, который вы хотите как объект jQuery:
var thIndex = $( '#tablica #bli' ).index (); // get index of TH in thead
var $td = $( $( '#dva td' ).get ( thIndex ) ); // get the TD in the target TR on the same index as is in the thead
Пример JSFiddle