У меня есть следующий 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?
Заранее спасибо.