0

条件チェックボックスがチェックされているかどうかにかかわらず、チェックボックス要素のカスタム属性を共有しているすべての兄弟にクラスを追加しようとしています。

     if (jQuery("tr[data-tt-parent-id='" + parentIdLevel_1 + "']").find(' td:first input').siblings().is(':checked') == true) {
            jQuery('tr#' + parentIdLevel_1 + ' td:first').removeClass('intermediateCheckBoxCss').addClass('chkBoxCss');
        }

編集:これは私のHTMLです

 <tbody><tr class="noParentoddRow branch expanded" data-tt-id="6" id="6">
    <td class="intermediateCheckBoxCss"><span class="indenter" style="padding-left: 0px;"><a href="#" title="Collapse">&nbsp;</a></span>
        <input type="checkbox" class="" style="display: none;" value="6" name="status[]" id="status-6">
        <label for="status-6">
            <span></span>
            Manufacturing Module</label>
    </td>
</tr>
<tr data-tt-parent-id="6" data-tt-id="7" id="7" class="branch collapsed" style="display: table-row;">
    <td class="chkBoxCssChecked"><span class="indenter" style="padding-left: 23px;"><a href="#" title="Expand">&nbsp;</a></span>
        <input type="checkbox" class="cssParentId-6" style="display: none;" value="7" name="status[]" id="status-7" checked="checked">
        <label for="status-7">
            <span></span>
            Stock</label>
    </td>
</tr>


<tr data-tt-parent-id="6" data-tt-id="12" id="12" class="branch collapsed" style="display: table-row;">
    <td class="chkBoxCssChecked"><span class="indenter" style="padding-left: 23px;"><a href="#" title="Expand">&nbsp;</a></span>
        <input type="checkbox" class="cssParentId-6" style="display: none;" value="12" name="status[]" id="status-12" checked="checked">
        <label for="status-12">
            <span></span>
            Product</label>
    </td>
</tr>

何か不足している場合はどのように機能しないかお知らせください。他に何か必要な場合は、それをお知らせください。提供します

4

1 に答える 1

1

jQueryはすべての兄弟siblings()を選択します。各要素をテストする必要があるため、を使用するにはを使用する必要があります。each()is(':checked')

jQuery('input').eq(0).siblings().each(function() {
    if (this.checked) {jQuery(this).addClass('selected');}
});

ただし、次のように特定の兄弟を選択することもできます。

...siblings(':checked').addClass('selected');

また

jQuery('input ~ :checked').addClass('selected')

http://jsfiddle.net/GzUpW/

編集:

兄弟の定義について:
兄弟は、同じレベルで同じ親を持つノードとして定義されます。

したがって、あなたの例を考えると、セレクターは次のようになるはずです(特定の入力に対して):

$(this).closest('table').find('input').not(this)

チェックボックスをラジオボタンのように機能させる例を次に示します: http://jsfiddle.net/dYT7K/

于 2013-09-18T22:47:27.850 に答える