Я пытаюсь добавить класс ко всем братьям и сестрам, которые используют некоторый пользовательский атрибут над элементом флажка, если флажок условия установлен или не установлен.
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');
}
EDIT: Это мой 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"> </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"> </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"> </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>
некоторые, как его не работает, если я упускаю какую-то вещь, plz сообщит мне, и если что-то еще требуется, укажите ее, я ее предоставил
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')
Что касается определения братьев и сестер:
Братья и сестры определяются как узлы на одном уровне и с одним и тем же родителем.
Итак, учитывая ваш пример, кажется, что селектор должен быть чем-то вроде этого (относительно конкретного ввода):
$(this).closest('table').find('input').not(this)
Здесь пример, который делает флажки, такие как переключатели: http://jsfiddle.net/dYT7K/
If your check boxes are in separate table cells they won't be siblings.
Очень верно! Вам нужно искать детей родительской таблицы (или что-то подобное).