У меня есть следующий HTML-код:
<ul>
<li class="O">
<label for="radio1">Radio 1:</label>
<input type="radio" name="radio1" value="Yes" checked>Yes</input>
<input type="radio" name="radio1" value="No">No</input>
</li>
<li class="O">
<label for="checkbox1">Checkbox 1:</label>
<input type="checkbox" name="checkbox1" id="checkbox1" value="check"></input>
</li>
</ul>
Используя jQuery, я хотел бы сделать что-то, чтобы каждый флажок не был отмечен или элемент с пустым значением внутри элемента li с классом O. Это мой подход:
$('li').each(function(){
if ($(this).hasClass('O')){
$(this).children(':not(label,input:radio)').each(function(){
if ( $(this).val() == "" || $(this).is(':checkbox:not(:checked)') ) {
//do something
}
});
}
Этот код работает в FF, Opera, Chrome и Safari, но не в IE6-IE7.
Для обоих IE получение длины li с помощью $ (this) .children (': not (label, input: radio)'). Length возвращает 2, другие браузеры возвращают 0 и 1.
Кроме того, получение первого числа детей li, которые не являются меткой ($ (this) .children (': not (label)'). Length), возвращает 4, а количество детей ($ (this) .children (). length) возвращает 2. Это не имеет никакого смысла для меня вообще.
Я ошибаюсь или в используемом селекторе есть что-то, что не полностью совместимо с IE?
Заранее спасибо.