Вопрос

Ну, после бесчисленных попыток я не могу получить эту работу?

<script type="text/javascript">
    $("td input").focusout(function() {
      var column = $(this).parent('td').attr('class');
      var row = $(this).parent('tr').attr('id');
      $('#dat').HTML(row+" "+column);
    }); 
</script>

И HTML выглядит так:

<tr class="numbers" id="1">
<td class="a" align="right">1</td>
<td class="b"><input class="input" type="text" value=""/></td>
<td class="c"><input class="input" type="text" value=""/></td>

<td class="d"><input class="input" type="text" value=""/></td>
<td class="e"><input class="input" type="text" value=""/></td>
<td class="f">0</td>
<td class="g"><input class="input" type="text" value=""/></td>
</tr>

Кто-нибудь может указать мне правильное направление на то, что может быть не так?

Это было полезно?

Решение

Обратите внимание, что это должно быть строчным

$('#dat').HTML(row+" "+column);

.html

а также

$(this).parent('tr')

NULL, вход не может иметь родитель

в качестве альтернативы это вы можете использовать

.closest( selector, [ context ] ) функция

Другие советы

Пытаться:

$(this).closest('td').attr('class')

в соответствующем месте в вашем коде. То же самое для удостоверения личности.

Ваш код выглядит прямо по большей части, просто исправьте эти вещи:

$('#dat').HTML(row+' ' +column);

К этому:

$('#dat').html(row + ' ' + column);

И это:

$(this).parent('tr').attr('id');

К этому:

$(this).parents('tr').attr('id');

Вы хотите использовать .parents() функция, а не .parent().

Причина из документации, моя подсветка.

Учитывая объект jQuery, который представляет собой набор элементов DOM, метод .parent () позволяет нам обыскивать родителей этих элементов в дереве DOM и построить новый объект jQuery из соответствующих элементов. Методы .parents () и .parent () аналогичны, за исключением того, что последний путешествует только один уровень вверх по дереву DOM.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top