我有任何html代码,其中包含两个复选框,并且具有类似这样的类名称
<p class="text">
<input type="checkbox" value="Yes" id="ques11" name="radiobutton" class="option_1" />
<label for="ques11">True</label>
<span class="hide" id="ans1">Answer: True</span>
<span id="rite11" class="hide"><img class="imgsize" src="images/ans_correct.png"/></span>
<span id="wrong11" class="hide"><img class="imgsize" src="images/ans_wrong.png"/></span> </p>
<p class="text">
<input type="checkbox" value="No" id="ques12" name="radiobutton" class="option_2" />
<label for="ques12">False</label>
<span id="rite12" class="hide"><img class="imgsize" src="images/ans_correct.png"/></span>
<span id="wrong12" class="hide"><img class="imgsize" src="images/ans_wrong.png"/></span> </p>
我写了一个脚本来检查哪个chekbox
$('input[type="checkbox"]').each(function(){
var quesNo = this).closest("div[id^='questionsNo_']").attr('id').split('_');
var chapterId = quesNo[1];
var questionId = quesNo[2];
var optionId = $(this).attr('class').split('_')[1];
...
在var optionId中我希望得到一个像是,如果我选中了第一个复选框,我想从'option_1'获得'1'值,假设我已经选中了第二个复选框,我想得到2来自'option_2'如何获取复选复选框的值。
答案 0 :(得分:0)
只需为psuedo选择器:checked
添加一个签入,更多信息here
$('input[type="checkbox"]').each(function(){
var quesNo = $(this).closest("div[id^='questionsNo_']").attr('id').split('_');
var chapterId = quesNo[1];
var questionId = quesNo[2];
var optionId;
if ($(this).is(':checked')) {
optionId = $(this).attr('class').split('_')[1];
} else {
//Else don't set it or do something else for this case
}
});
或者,如果你想要的只是关于选中字段的信息,那么在循环之前只需将它包含在原始选择器中,例如....
var selectedNum = $('input[type="checkbox"]:checked').attr('class').split('_')[1]
请注意,如果选择器返回多个结果,上述内容将无效,在这种情况下,您需要循环或选择您想要获得的结果。
<强>更新强>
如果你想要一个json,只需将变量创建为一个对象,并将其值设置为类中的数字,如此
var myJSON = { 'option_id': $('input[type="checkbox"]:checked').attr('class').split('_')[1] };
请记住,您需要stringify此对象才能成为真正的JSON。