我有可变数量的类似无线电组,我需要通过类顺序循环它们并输出所选值。 JS小提琴如下。我意识到我可以通过使用#ID而不是.Class直接找到它,但是没有所有细节,我需要走这条路。
在创建问题的过程中,我发现b数组的长度是9,所以为了获得第二组我使用b [2 *(组中的#radios)],但这看起来有点像hackish。还有其他推荐吗?
<div id="1">
<input type = "radio" name="a0" value="1" class="a" checked="checked" >1</input>
<input type = "radio" name="a0" value="2" class="a">2</input>
<input type = "radio" name="a0" value="3" class="a">3</input>
<div>
<div id="2">
<input type = "radio" name="a1" value="1" class="a">1</input>
<input type = "radio" name="a1" value="2" class="a" checked="checked">2</input>
<input type = "radio" name="a1" value="3" class="a">3</input>
<div>
<div id="3">
<input type = "radio" name="a2" value="1" class="a">1</input>
<input type = "radio" name="a2" value="2" class="a">2</input>
<input type = "radio" name="a2" value="3" class="a" checked="checked">3</input>
<div>
<button onclick="getValue();">Get values</button>
<script>
function getValue() {
var b = $(".a");
alert( $('input:radio[name=' + $(b[2*3]).attr("name") + ']:checked').val() );
}
</script>
答案 0 :(得分:0)
您可以使用jQuery的$.each
函数进行迭代。
function getValue() {
$("input:radio.a:checked").each(function () {
console.log(this);
});
}
答案 1 :(得分:0)
如果你对一系列已检查的输入感到满意:
// iterate over the <input> elements of
// class 'a' and which are checked,
// forming a map:
var checked = $('input.a:checked').map(function () {
// return the value of the current <input>
// of the collection of elements:
return this.value;
// convert the map to an Array:
}).get();
console.log(checked); // ["1", "2", "3"];
如果您想生成一个对象,其中名称是键,输入的值是键值:
// create an Object:
var checked = {};
// iterate, using each(), over the checked
// inputs of class-name 'a':
$('input.a:checked').each(function () {
// setting a property (this.name) on
// the named Object (checked), and
// setting its value to the <input>
// value (this.value):
checked[this.name] : this.value;
});
console.log(checked); // { 'a0' : "1", 'a1' : "2", 'a2' : "3" }
参考文献:
答案 2 :(得分:0)
我发现找到封闭的div更加直截了当,每个div都持有无线电组并选择如下:
第二组:
$(b[1]).children('input[type=radio]:checked').val()
包括JSFiddle。 https://jsfiddle.net/cycle4passion/6c0q0kum/5/