Ссылка на первый столбец jQuery в таблице HTML - PullRequest
1 голос
/ 27 мая 2010

У меня есть таблица, в которой все ячейки являются тегами 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());<br /> но это не работает.

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

Ответы [ 2 ]

1 голос
/ 27 мая 2010

В вашей версии вы выбрали 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());
0 голосов
/ 27 мая 2010

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

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

...