2013-01-15 89 views
1

輸入值我有兩個fieldsets兒童元素添加類取決於使用jQuery

<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。我嘗試過,但每次這堂課都追加第一個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'); 
} 

如何添加類此分組spaninput有肯定的價值?

回答

1

你可以做到這一點的類checked添加到所有'span.as_cp_checkbox'輸入的值是"yes"前面:

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

Demonstration

+0

這很好,很多thx – Lukas

0

checkable_fieldset_input.val('yes')將該值設置爲是。 你需要做的checkable_fieldset_input.val() == 'yes'

0

你的條件if語句應閱讀

checkable_fieldset_input.val() == 'yes' 

現在你是指定的值爲yes。

-1
$('fieldset.checkable input').each(function(_, input){ 
    if($(input).val() == 'yes') 
    { 
     $(input).siblings('span.as_cp_checkbox').addClass('checked'); 
    } 
}); 
+0

我不是downvoter,但你可能應該知道給回調的第一個參數不是元素,但索引。 –

+0

哦,你是對的!我的不好.. – 3rgo

+0

HTML/js中的一個好習慣是測試你提出的代碼作爲答案。混淆這樣的東西很容易。 –