Подтвердить что ты не робот

Найти ячейку таблицы, которая знает строки и идентификаторы столбцов с помощью 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: Есть много правильных ответов, я все их оптимизировал, но, к сожалению, я могу выбрать только правильный.

4b9b3361

Ответ 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"});

Рабочий пример

Ответ 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