Как получить значение из ближайшего <td>с определенным именем класса? - PullRequest
1 голос
/ 23 февраля 2012

Я использую Jeditable внутри таблицы, чтобы обновить значение.

function updateOwner(row, value, settings) {

            var td = $(row).closest('.cvrnummer');

            alert(td.html());

            $.post('UserAdministration/UpdateOwners', { owner: value }, function (data) {
                alert(data);
            });
        }

        $('.editable').editable(function (value, settings) {
            updateOwner(this, value, settings);
            return (value);
        }, {
            data: " {'mona':'moma','cecilie':'cecilie','jacob':'jacob', 'morten':'morten', 'rasmus' : 'rasmus', 'selected':'mona'}",
            type: 'select',
            submit: 'OK'
        });

Таблица выглядит так:

<table id="userTable" class="table-autofilter table-autosort" >
<thead>
<tr>
<th>CVR-Nummer</th>
<th>Firma navn</th>
<th class="table-filterable">Tilhører</th>
<th class="table-sortable:date">Oprettet</th>
<th>Sidst online</th>
<th></th>
<th class="table-sortable:numeric table-sortable">Besvaret (%)</th>
</tr>
</thead>
<tbody>
<tr>
       <td class="cvrnummer"></td>
       <td></td>
       <td class="editable" style="text-align: center;"></td>
       <td></td>   
       <td></td>
       <td>Se besvarelser</td>
       <td>
       </td>
</tr>
</tbody>
</table>

Я хочу передать значение внутри

<td class="cvrnummer"></td>

когда я использую AJAX для публикации значения, но я не уверен, как получить значение. Я использую:

var td = $(row).closest('.cvrnummer');

            alert(td.html());

который возвращает ноль.

Как мне получить значение?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Похоже, вы выбрали <td class="editable"> в качестве первого аргумента для метода updateOwner.Селектор closest в jQuery не будет смотреть на братьев и сестер с выбранным td, он просто проходит через DOM.Вы можете попробовать var td = $(row).siblings('.cvrnummer'); или var td = $(row).parent().find('.cvrummer');

0 голосов
/ 23 февраля 2012

Вы должны сделать

var td = $(row).closest.('tr').find('td.cvrnummer');

, потому что closest() идет вверх по дереву DOM, а find() идет вниз.Вы не можете использовать prev(), потому что он возвращает только элемент previous

...