Первый столбец ссылки jQuery в таблице HTML

У меня есть таблица, в которой все ячейки являются тегами INPUT. У меня есть функция, которая ищет первую ячейку input и заменяет ее значением. Итак, это:

<tr id="row_0" class="datarow">
    <td><input class="tabcell" value="Injuries"></td>
    <td><input class="tabcell" value="01"></td>

становится таким:

<tr id="row_0" class="datarow">
    <td>Injuries</td>
    <td><input class="tabcell" value="01"></td>

Вот первая часть функции:

function setRowLabels() {

    var row = [];
    $('.dataRow').each(function(i) {
        row.push($('td input:eq(0)', this).val() + ' -> ');
        $('td input:eq(0)', this).replaceWith($('td input:eq(0)', this).val());
        $('td input:gt(0)', this).each(function(e) {
    etcetera

Но когда страница перезагружается, первый столбец не является типом ввода, поэтому он также меняет второй столбец на текст!

Могу ли я сказать, чтобы он изменил только первый столбец, независимо от его типа? Я пробовал
$('td:eq(0)', this).replaceWith($('td:eq(0)', this).val());
, но это не работает.

Любые предложения приветствуются!


person Vic    schedule 27.05.2010    source источник


Ответы (2)


В вашей версии вы выбирали td вместо input.

  // Selects the first td in the row
$('td:eq(0)', this).replaceWith($('td:eq(0)', this).val());

Попробуй это:

  // Selects the input of the first td in the row
$('td:eq(0) input', this).replaceWith($('td:eq(0) input', this).val());
person user113716    schedule 27.05.2010
comment
Когда я впервые прочитал ваш ответ, я подумал, что вы ввели именно то, что я пробовал в первый раз. После повторного чтения я вижу, что вы изменили «td input:eq(0)» на «td:eq(0) input»‹br /› И это сработало! Спасибо! - person Vic; 27.05.2010

Попробуйте псевдокласс CSS td:nth-child.

http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/full/flat/css3-modsel-28b.html

person phx_zs    schedule 27.05.2010
comment
Кроме того, не уверен, поймали ли вы это, но у вас есть datarow как значение атрибута вашего класса tr и dataRow как значение в вашей функции JQuery. - person phx_zs; 27.05.2010
comment
Ой, опечатка. Они оба dataRow. - person Vic; 27.05.2010
comment
Псевдокласс CSS td:nth-child теперь добавлен в закладки! Хотя цвета довольно яркие... - person Vic; 27.05.2010