2014-09-28 83 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栏是空的,在对象的相应值将是无效