2017-10-13 43 views
0

嗨,我有這張表有多行。 我想知道如何在此表的每一行中獲得某些數據。在這張表中,我需要獲得學號數據,並附上成績單。JQuery每個獲取錶行中多個表數據的值

<tbody> 
    <?php foreach ($class_list_view as $student) { ?> 
    <tr> 
     <td class="studentnumber"><?= $student->studentnumber ?></td> 
     <td><?= $student->lastname ?></td> 
     <td><?= $student->firstname ?></td> 
     <td><?= $student->middlename ?></td> 
     <td><?= $student->level ?></td> 
     <td><?= $student->year ?></td> 
     <td> 
     <select class="custom-select grade" style="height: 20px;"> 
      <option selected value="">Select Grade</option> 
      <option value="passed">Passed</option> 
      <option value="failed">Failed</option> 
     </select> 
     </td> 
    </tr> 
    <?php } ?> 
</tbody> 

我曾嘗試使用jQuery中的each循環,但我不知道如何得到它類似於/直列選擇。

$("table tbody tr td.studentnumber").each(function (index) { 
     studentnum_array.push({"studentnumber": $(this).text(), "grade": $('table tbody tr td select.grade').val() }); 
    }); 

    console.log(studentnum_array); 

但是在grade索引中只有第一個索引。它應該在td studentnumber類似的每一行中選取值。

回答

3

您可以遍歷行,而不是細胞...

var studentnum_array = []; 

$("table tbody tr").each(function(index) { 
    studentnum_array.push({ 
     "studentnumber": $(this).find('td.studentnumber').text(), 
     "grade": $(this).find('select.grade').val() 
    }); 
}); 

console.log(studentnum_array); 

如果你想通過細胞循環,你必須要找到相關的select到相應的studentnumber細胞...

var studentnum_array = []; 

$("table tbody td.studentnumber").each(function(index) { 
    studentnum_array.push({ 
     "studentnumber": $(this).text(), 
     "grade": $(this).closest('tr').find('select.grade').val() 
    }); 
}); 

console.log(studentnum_array); 
1

因爲你已經通過每個td循環,那麼你需要找到它的封閉tr然後找到select

$("table tbody tr td.studentnumber").each(function (index) { 
      var grade = $(this).closest('tr').find('select.grade').val(); 
      studentnum_array.push({"studentnumber": $(this).text(), "grade": grade }); 
     }); 

     console.log(studentnum_array);