仅在选中

时间:2016-07-27 09:18:11

标签: javascript jquery html json each

我有任何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'如何获取复选复选框的值。

1 个答案:

答案 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。