找到所有单选按钮值

时间:2014-12-19 08:23:08

标签: jquery html

我想找到所有单选按钮值。但它只返回一个值。我的代码在这里。

$(document).on("click", ".content>span" , function(e ) {
        var p = $(this).parent('td');
        var RadiobtnValues    = p.find("div").find('input').attr('value');
 });

  <td class="ui-droppable ui-sortable content tbledata">
  <span>
  <img src="images/Close-icon.png" class="close_img">
  <img src="images/expand.png" class="expand_img">
  <div class="form-group" id="radiooption">
        <label>Radio Button</label>             
        <input type="radio" name="radio_0" value="yes">Yes
        <input type="radio" name="radio_0" value="no">No
    </div>
 </span>
 </td>

3 个答案:

答案 0 :(得分:5)

jQuery&#34; getter&#34;像attr这样的函数只返回集合中第一个元素的值。如果你想要所有这些,你需要一种循环。例如,这将为您提供一系列数据:

var RadiobtnValues    = p.find("div").find('input').map(function() {
    return this.value;
}).get();

注意:没有检查相关的单选按钮是否被选中,这将返回它们的值,无论它们是否被选中。如果您只想要所选值的值:

var RadiobtnValues    = p.find("div").find('input:checked').map(function() {
    return this.value;
}).get();

或者作为一个对象,每个单选按钮的名称为关键字:

var RadiobtnValues    = {}
p.find("div").find('input:checked').each(function() {
    RadiobtnValues[this.name] = this.value;
});

答案 1 :(得分:0)

这样的事情

$(document).on("click", ".content>span" , function(e ) {
    var allRadioBoxValues = [];
    var p = $(this).parent('td');
    var RadiobtnValues    = p.find("div").find('input');
    RadiobtnValues.each(function(index,elem){
        allRadioBoxValues.push(elem.value);
    });
    // now 'allRadioBoxValues' will have array of radio button values
});

答案 2 :(得分:0)

正如docs中所述:

  

.attr()方法仅获取第一个元素的属性值   在匹配的集合中。要单独获取每个元素的值,   使用循环结构,如jQuery的.each()或.map()方法。

这意味着当你有更多元素时,它只会返回第一个元素的attr。要获取所有属性,您可以定义一个数组:

var RadiobtnValues = new Array();
p.find("div").find('input').each(function(index) { RadiobtnValues[i] = $(this).attr('value') });