1

我有两个fieldsets

<fieldset class="checkable">
   <span class="as_cp_checkbox"></span>
   <input type="hidden" name="register_condition_01" id="register_condition_01" value="no">
   <label for="register_condition_01">data</label>
</fieldset>
<fieldset class="checkable">
   <span class="as_cp_checkbox"></span>
   <input type="hidden" name="register_condition_02" id="register_condition_02" value="yes">
   <label for="register_condition_02">data</label>
</fieldset>

现在:如果我的输入值为是,我需要添加checked类。span.as_cp_checkbox我尝试这样做,但每次这个类都附加为 first fieldset

var checkable_fieldset = $('fieldset.checkable'),
    checkable_fieldset_input = checkable_fieldset.find('input');
if (checkable_fieldset_input.val('yes')){
    checkable_fieldset_input.parent(checkable_fieldset).prev().children('span').addClass('checked');
}

我如何为这个 prev 添加span具有inputyes 值的类?

4

4 回答 4

1

您可以这样做以将类添加到其值为 的输入之前的checked所有内容:'span.as_cp_checkbox'"yes"

$('input').filter(function(){return $(this).val()=="yes";})
 .prev('span.as_cp_checkbox')
 .addClass('checked');

示范

于 2013-01-15T16:07:03.150 回答
0

checkable_fieldset_input.val('yes')将值设置为是。你需要做checkable_fieldset_input.val() == 'yes'

于 2013-01-15T16:06:32.030 回答
0

您在 if 语句中的条件应为

checkable_fieldset_input.val() == 'yes'

现在您正在分配值是。

于 2013-01-15T16:07:57.930 回答
-1
$('fieldset.checkable input').each(function(_, input){
    if($(input).val() == 'yes')
    {
        $(input).siblings('span.as_cp_checkbox').addClass('checked');
    }
});
于 2013-01-15T16:08:37.440 回答