2014-02-04 5 views
-1

У меня есть таблица, где я хочу, для каждой строки, получить первый td и для этого td Я хочу первый input дочернее значение.Как я могу получить значение первого ребенка td?

Я могу получить разметку для ввода, но я не могу извлечь значение.

Вот мой код:

$('#table-unidades tr:not(:last-child)').each(function() { 
     $('td:first-child', this).each(function() { 
      var firstCell = $(this).children().eq(0); 
      var text = firstCell.html(); 
      alert(text); 
     }) 
    }); 

мои предупреждения выводит это:

<input type="text" name="unidades-first-td" value="UN - Unidade" disabled /> 

Но все, что я хочу, это значение .. Я пытался с .text(), .val (), но это не сработало ...

+0

Try: '$ ('# настольный unidades т.р.: нет (: последний ребенок) тд: первый-ребенок') каждый (. function() {alert (this.value);}) ' – tewathia

+1

' var text = firstCell.val(); 'должно работать. Лучше построить скрипку для лучшего понимания. – Praveen

+0

@ tewathia, он дает «неопределенный» для каждой итерации. Но проблема была решена, спасибо в любом случае :) – yat0

ответ

1

Вы должны использовать val(), чтобы получить значение входа, а затем использовать find() найти поле ввода внутри td

$('#table-unidades tr:not(:last-child)').each(function() { 
    $('td:first-child', this).each(function() { 
     var firstCell = $(this).children().eq(0); 
     var text = firstCell.find('input').val(); 
     alert(text); 
    }) 
}); 
+0

Спасибо большое :) – yat0

+1

@polska рада помочь вам :) –

1

Попробуйте

var val = firstCell.find('input').val(); 
alert(val); 
+0

вы используете attr вместо val. +1 для использования предупреждения вместо console.log, который не является родным. – eyurdakul

+0

А, ок. Я думаю, что я неправильно понял вопрос (снова). Я уточню свой ответ. Благодарю. –

+0

Спасибо за ответ :) – yat0

1

Вам не нужно использовать два каждые петлю, чтобы найти первый ребенок, и вы должны использовать .val(), чтобы получить значение входа, попробуйте этот

$('#table-unidades tr:not(:last-child)').each(function() { 
    var text = $(this).find('td:first input:first').val(); 
}); 
+0

wow, nice, это выводит одно дополнительное предупреждение с «undefined», но оно работает действительно, спасибо :) – yat0

0

Используйте .val(), чтобы получить значение элемента ввода

$('#table-unidades tr:not(:last-child) td:first-child').each(function() { 
    var firstCell = $(this).children('input'); 
    var text = firstCell.val(); 
    alert(text); 
}); 
+0

Это не работает, он ничего не выводит .. Но спасибо в любом случае:) – yat0

0
var trs = $("tr", ".my-table"); 
for(var i=0; i<trs.length; i++){ 
    var nval = $("td:first-child > input", trs[i]).val(); 
    console.log(nval); 
} 

1 не заботясь о репутации. 2 если это не работает, заставьте его работать.

+0

вы здесь, чтобы помочь или получить репутацию? – yat0

+0

в любом случае, он не работает. – yat0

3

попробовать это и получить их все в виде массива раз:

$("#table-unidades tr:not(:last-child)>td:first-child input:text:first-child") 
        .map(function() {return $(this).val(); }).get(); 
Смежные вопросы