2012-05-04 58 views
0

我有这个div下面,在选择CFGID单选按钮我应该能够得到相同的行值。例如:testDevindi等值如何使用jquery获取单选按钮的td值?

<div id="updateFormDiv"> 
     <table class="tableForms"> 
      <tbody> 
       <tr> 
        <th class="tableHeading"></th> 
        <th class="tableHeading">Name</th> 
        <th class="tableHeading">Host Name</th> 
        <th class="tableHeading">Description</th> 
        <th class="tableHeading">Type</th> 
        <th class="tableHeading">Last Update Time</th> 
       </tr> 
       <tr> 
        <td><input type="radio" name="CFGID" id="CFGID" value="11579"></input></td> 
        <td>testDev</td> 
        <td>indi</td> 
        <td>testDev</td> 
        <td>Development</td> 
        <td>Fri Apr 26 04:31:40 IST 2012</td>       
       </tr> 
      </tbody> 
     </table> 
    </div> 

所以按钮点击我写这

alert($("input[name='CFGID']:checked").next().text()); 

,但它给了我空。请帮我取每个值。谢谢

回答

5

尝试类似这样;

$(document).on('change', ':radio[name="CFGID"]', function() { 
    var arOfVals = $(this).parent().nextAll().map(function() { 
     return $(this).text(); 
    }).get(); 
}); 

arOfValues然后将数组如['testDev', 'indi', 'testDev', 'Development', 'Fri Apr 26 04:31:40 IST 2012'](即,在剩余的列中的文本该行)

你选择器没有工作,因为它包含的文本<td>的是next()元件父母的输入,而不是input本身(input没有兄弟姐妹)。

请注意,如何在事件处理函数内使用$(this)来引用所选元素,而不是$("input[name='CFGID']:checked")。另请参阅我如何通过on()使用事件委派,因为将相同的事件绑定到多个元素是很差的练习。

请阅读on(),parent(),nextAll(),map()get()以查看它们的用途。

+0

单选按钮没有一个'onselect'事件。不应该是'.on('change''? –

+0

@火箭:谢谢;) – Matt

+0

感谢@Matt非常好的信息。它工作完美 – abi1964

0

试试这个:

var texts = []; 

$("input[id='createRad']:checked").siblings("td").each(function(i, v){ 
    texts[i] = $(this).text()   
}); 
0
$("input[name='CFGID']").on('change', function() { 
    console.log($(this).parent().nextAll('td').text()); 
}); 
相关问题