我想找到所有单选按钮值。但它只返回一个值。我的代码在这里。
$(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>
答案 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') });