使用javascript获取th标签内的输入值

时间:2017-04-20 14:43:02

标签: javascript laravel

如何在html中输入th的值?我的问题在第五,它不会得到输入的值。看我的javascript代码。谁知道解决这个问题的想法?这段代码很好但是当我在里面添加输入字段时,它不起作用。我在这里想念的是什么?有没有办法实现我的目标?注意:我只需要在第五个输入。

<tr>                 
  <th colspan="3">Learning Areas</th>
  <th colspan="2">Term 1</th>
  <th colspan="2">Term 2</th>
  <th colspan="2">Term 3</th>
  <th colspan="2">Term 4</th>
  <th>Ave</th>
</tr>
</thead>
<tbody>
@foreach($card['AllGrade'] as $subject)
             {!! Form::hidden('grade_id[]',$subject['grade_id']) !!} 
    <tr>
        <th colspan="3">{!! $subject->subject !!}</th>
        <th colspan="2">{!! $subject->term_1 !!}</th>
        <th colspan="2">{!! $subject->term_2 !!}</th>
        <th colspan="2">{!! $subject->term_3 !!}</th>
        <th colspan="2"><input text="term_4" value="{!! $subject->term_4 !!}" class="form-control" name="term_4"></th>

        <th colspan="2" name ="ave" id ="ave" value=""> total</th>


        </tr>
@endforeach


<script type="text/javascript">
$("tbody tr").each(function() {
    var total = 0;
    var ave = 0;
    var count = 1;
    $(this).children('th').not(':first').not(':last').each(function () {
        //"this" is the current element in the loop
        var number = parseInt($(this).html());
        total += number;
        ave = total/count;
        count++;

    });
    $(this).children('th').last().html(ave);
});
</script>

1 个答案:

答案 0 :(得分:0)

var number = parseInt($(this).html());中,您将获得input的html代码,因此您应该使用其他方法访问其值。

我想我会这样做:

$(this).children('th').not(':first').not(':last').each(function () {
    //"this" is the current element in the loop
    var number = ($(this).children('input').length == 0) ? $(this).html() : $(this).children('input').first().val();
    total += parseInt(number);
    ave = total/count;
    count++;
});

它应该有效,因为现在你正确地访问它了。