如何在if / else语句中使用$(this)

时间:2014-07-02 12:41:44

标签: jquery this

HTML:

<div class="form-checkboxes" id="edit-field-vozrast-value"><div class="form-item form-type-checkbox form-item-field-vozrast-value-1">
    <input type="checkbox" class="form-checkbox" value="1" name="field_vozrast_value[1]" id="edit-field-vozrast-value-1">  
    <label for="edit-field-vozrast-value-1" class="option">0-3 </label>
</div>

<div class="form-item form-type-checkbox form-item-field-vozrast-value-2">
    <input type="checkbox" class="form-checkbox" value="2" name="field_vozrast_value[2]" id="edit-field-vozrast-value-2">  
    <label for="edit-field-vozrast-value-2" class="option">3-7 </label>
</div>

<div class="form-item form-type-checkbox form-item-field-vozrast-value-3">
    <input type="checkbox" class="form-checkbox" value="3" name="field_vozrast_value[3]" id="edit-field-vozrast-value-3">  
    <label for="edit-field-vozrast-value-3" class="option">7+ </label>
</div>
</div>

JS:

var $age = $('#edit-field-vozrast-value .form-type-checkbox label');
var $vinput = $('#edit-field-vozrast-value .form-type-checkbox input');

    $age.on('click', function() {
        if ($(this).parent().find('input').is(':checked') != true) {
    $(this).addClass('highlight');
    } else {
        $(this).removeClass('highlight'); 
    }
    });

    if ($vinput.is(':checked')) {
      $age.addClass('highlight'); // this adds class highlight to all checkboxes
    }

此代码的逻辑如下:当复选框具有选中的值时 - 将类高亮度添加到其标签中。但问题是,当复选框具有选中的值时,它会添加“突出显示”#39;对所有复选框进行分类,即使它们没有检查值。那么在这种情况下如何使用$(this)这样的东西呢?

更新信息。当我点击一个复选框时 - 我的页面重新加载并且&#34;突出显示&#34; class dissapears,这就是为什么我需要使用最新的if / else语句将这个类再次应用到一个带有&#34;复选框的复选框&#34;言。

1 个答案:

答案 0 :(得分:1)

#edit-field-vozrast-value .form-type-checkbox input[type=checkbox]:checked + label {
    /* my styles here */
}

这是一招,谢谢大家!