How to iterate through a table rows and get the cell values using jQuery

前端 未结 5 1387
天涯浪人
天涯浪人 2020-12-30 04:16

I am creating the below table dynamically using jQuery... After executing my code I get the table as below:

相关标签:
5条回答
  • 2020-12-30 04:42

    Hello every one thanks for the help below is the working code for my question

    $("#TableView tr.item").each(function() { 
        var quantity1=$(this).find("input.name").val(); 
        var quantity2=$(this).find("input.id").val(); 
    });
    
    0 讨论(0)
  • 2020-12-30 04:42

    I got it and explained in below:

    //This table with two rows containing each row, one select in first td, and one input tags in second td and second input in third td;

    <table id="tableID" class="table table-condensed">
           <thead>
              <tr>
                 <th><label>From Group</lable></th>
                 <th><label>To Group</lable></th>
                 <th><label>Level</lable></th>
    
               </tr>
           </thead>
             <tbody>
               <tr id="rowCount">
                 <td>
                   <select >
                     <option value="">select</option>
                     <option value="G1">G1</option>
                     <option value="G2">G2</option>
                     <option value="G3">G3</option>
                     <option value="G4">G4</option>
                   </select>
                </td>
                <td>
                  <input type="text" id="" value="" readonly="readonly" />
                </td>
                <td>
                  <input type="text" value=""  readonly="readonly" />
                </td>
             </tr>
             <tr id="rowCount">
              <td>
                <select >
                  <option value="">select</option>
                  <option value="G1">G1</option>
                  <option value="G2">G2</option>
                  <option value="G3">G3</option>
                  <option value="G4">G4</option>
               </select>
             </td>
             <td>
               <input type="text" id="" value="" readonly="readonly" />
             </td>
             <td>
               <input type="text" value=""  readonly="readonly" />
             </td>
          </tr>
      </tbody>
    </table>
    
      <button type="button" class="btn btn-default generate-btn search-btn white-font border-6 no-border" id="saveDtls">Save</button>
    
    
    //call on click of Save button;
     $('#saveDtls').click(function(event) {
    
      var TableData = []; //initialize array;                           
      var data=""; //empty var;
    
      //Here traverse and  read input/select values present in each td of each tr, ;
      $("table#tableID > tbody > tr").each(function(row, tr) {
    
         TableData[row]={
            "fromGroup":  $('td:eq(0) select',this).val(),
            "toGroup": $('td:eq(1) input',this).val(),
            "level": $('td:eq(2) input',this).val()
     };
    
      //Convert tableData array to JsonData
      data=JSON.stringify(TableData)
      //alert('data'+data); 
      });
    });
    
    0 讨论(0)
  • 2020-12-30 04:52

    $(this) instead of $this

    $("tr.item").each(function() {
            var quantity1 = $(this).find("input.name").val(),
                quantity2 = $(this).find("input.id").val();
    });
    

    Proof_1:

    proof_2:

    0 讨论(0)
  • 2020-12-30 05:04

    Looping through a table for each row and reading the 1st column value works by using JQuery and DOM logic.

    var i = 0;
    var t = document.getElementById('flex1');
    
    $("#flex1 tr").each(function() {
        var val1 = $(t.rows[i].cells[0]).text();
        alert(val1) ;
        i++;
    });
    
    0 讨论(0)
  • 2020-12-30 05:06

    You got your answer, but why iterate over the tr when you can go straight for the inputs? That way you can store them easier into an array and it reduce the number of CSS queries. Depends what you want to do of course, but for collecting data it is a more flexible approach.

    http://jsfiddle.net/zqpgq/

    var array = [];
    
    $("tr.item input").each(function() {
        array.push({
            name: $(this).attr('class'),
            value: $(this).val()
        });
    });
    
    console.log(array);​
    
    0 讨论(0)
提交回复
热议问题