2016-04-25 2 views
0

Я пытаюсь получить доступ к значению td строки над контекстом. Я могу получить строку выше с помощью метода prev(), а также получить детей с помощью метода children(), но когда я добавлю find() с селектором, я не смогу найти конкретную ячейку, которую я ищу.Получение значения td возвращает undefined

Когда я регистрирую возврат с children(), я вижу все данные таблицы, которые у меня есть.

Почему я не могу найти по id? См. Код ниже.

$("#tblProducts tbody").on("click", "#btnSubmitUpdate", function (e) { 
    var btnSaveUpdate = $(this); 

    var tr = btnSaveUpdate.closest("tr"); 

    var trAbove = $(tr.prev()[0]); 
    var desc = trAbove.children().find("#tdDescription").val(); 

    //desc is returning undefined 
    console.log(desc); 
}); 
+0

'td' (ячейки таблицы) не имеет значения (или) (значение) недвижимость , использовать 'trAbove.children(). Find (" # tdDescription "). Html()' вместо этого. –

+0

даже делает это 'var desc = trAbove.children(). Find ("# tdDescription"). Html();' возвращает undefined! @AlexKudryashev –

+0

попробуйте '$ ('# tdDescription', trAbove) .html()'. Между тем, вы уверены, что ваш 'td' имеет' id = "tdDescription" 'not' class = "tdDescription" '? –

ответ

0

Мне просто нужно было использовать find() непосредственно с trAbove без использования детей. Это решило мою проблему

0

Вы можете использовать так:

$("#tblProducts tbody").on("click", "td", function() { 
    var tdAttr = $(this).attr('class') 
    alert($(this).closest('tr').find("td."+tdAttr).text()) 
    /* 
     or $(this).text(), $(this).attr('class') or $(this).data('id') 
    */ 
}) 

Я написал пример кода: https://jsfiddle.net/nht9nvzy/

Смежные вопросы