2014-09-28 86 views
0

我有一個這樣的表。使用jquery從html表中獲取值

<form id="myform"> 
    <table> 
    <tr><th>TEST</th> <th>VALUES</th> <th>UNIT</th> 
    <tr><td>Abc</td><td><input type="text" ></td><td>unit 1</td></tr> 
    <tr><td>DEF</td><td><input type="text" ></td><td>unit 12</td></tr> 
    <tr><td>ASD</td><td><input type="text" ></td><td>unit 321</td></tr> 
    </table> 
     <input type="button" id="btn" value="click" /> 
</form> 

我從表格#myform得到那些不爲空的值。我正在使用jquery,下面是代碼。

$('#btn').click(function(){ 
      var store = []; 
      var i = 0; 
    $('#myform :input[type="text"]').each(function(){ 
     var testVal = $(this).val(); 
     if(testVal != null){ 
     store[i] = testVal; 
     i++; 
      } 
    }); 
}); 

這段代碼得到那些不爲null的值,它工作的很好。但我也想得到TESTUNIT這些輸入字段的值不爲空。
例如:
如果我提供第二個輸入字段的值,那麼它也得到DEF,value which is providunit 12。 單位是該輸入字段的下一個,Test是這個的前面。
我該怎麼做,任何建議,PLZ。
Thankx。

+0

*「但我希望也能得到這些輸入字段是不是空的測試和單位的價值。」 * - 因此,假設一個輸入具有值,但相應的TEST和UNIT值爲null,那麼您希望如何獲取該行的值?什麼將是相應的數據結構..? – 2014-09-28 10:54:35

回答

0

如下可以創建JS對象的數組:

$('#btn').click(function() { 
 
    var store = []; 
 
    $('#myform :input[type="text"]').map(function() { 
 
     var test = $(this).parent().prev().text(); 
 
     var values = $(this).val(); 
 
     var unit = $(this).parent().next().text(); 
 
     if (values) { 
 
      store.push({ 
 
       test: test, 
 
       value: values, 
 
       unit: unit 
 
      }); 
 
     } 
 
    }); 
 
    console.log(JSON.stringify(store)); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="myform"> 
 
    <table> 
 
     <tr> 
 
      <th>TEST</th> 
 
      <th>VALUES</th> 
 
      <th>UNIT</th> 
 
     </tr> 
 
     <tr> 
 
      <td>Abc</td> 
 
      <td> 
 
       <input type="text" /> 
 
      </td> 
 
      <td>unit 1</td> 
 
     </tr> 
 
     <tr> 
 
      <td>DEF</td> 
 
      <td> 
 
       <input type="text" /> 
 
      </td> 
 
      <td>unit 12</td> 
 
     </tr> 
 
     <tr> 
 
      <td>ASD</td> 
 
      <td> 
 
       <input type="text" /> 
 
      </td> 
 
      <td>unit 321</td> 
 
     </tr> 
 
    </table> 
 
    <input type="button" id="btn" value="click" /> 
 
</form>

可以遍歷該store陣列和訪問值等store[i].test,例如。

注意,如果testunit欄是空的,在對象的相應值將是無效