0

我有一张带桌子的表格。

<form >
    <div>   
    <table>
 <tr>        
       <td >  <input type="text" id="slno1" size="25" value="10" /> </td>     
       <td >  <input type="text" id="data" size="10" value="this is a test" /> </td>      
       <td >  <input type="radio"  value="" id="edit1" name="sample"  /> </td>    

  </tr>
   <tr>          
       <td >  <input type="text" id="slno2" size="25" value="10" /> </td>     
       <td >  <input type="text" id="data1" size="10" value="this is a test1" /> </td>    
       <td >  <input type="radio"  value="" id="edit1" name="sample"  /> </td>    
  </tr>
  </table>
  <input type="submit" id="mysu1" Value="submits" />  
    </div>
  </form>

因为当用户选择带有单选按钮的行时,我想要该行上的所有数据。所以,我们这样做:

var theSelectedRadioButton = theForm.find('input[name="sample"]:checked');

如何获取 td 中的所有相应值。

4

3 回答 3

1
var theSelectedRow = theSelectedRadioButton.closest('tr');

应该给你行,从那里你可以访问行中的数据。

旁白:您可以将数据处理功能绑定到单选按钮,然后您不需要“找到”它。

于 2012-12-10T06:46:28.190 回答
1

jsFiddle 演示

当目标输入字段的值发生变化时,您可以找到使用.closest()找到相应的行,然后将每个子项的值收集到一个新对象中。

$(theForm).find('input[name="sample"]').change(function() {

    var vals = $(this).closest('tr').children('td').map( function() {
        return $(this).find('input').val();
    }).toArray();
});
于 2012-12-10T06:46:58.823 回答
1

您可以使用closest单选按钮找到tr它所在的位置,然后children找到td该行中的所有 s:

var tds = theSelectedRadioButton.closest('tr').children('td');

然后从 s 中提取信息td,可能在循环中使用eachor map。您还没有说信息在哪里,但是例如,如果您想要他们的 HTML:

var tdhtml = theSelectedRadioButton.closest('tr').children('td').map(function(td) {
    return $(this).html();
}).get();

...导致字符串数组tdhtml包含每个td. (注意最后容易错过的调用getmap返回一个 jQuery 对象,即使它的内容不是 DOM 元素,get将其转换为普通数组。)

或者,如果信息存储在s 的data-*属性中tddata-foo在本例中):

var tddata = theSelectedRadioButton.closest('tr').children('td').map(function(td) {
    return $(this).attr('data-foo');
}).get();
于 2012-12-10T06:42:29.327 回答