У меня есть эта строка кода для загрузки страницы:
if ($("input").is(':checked')) {
и он отлично работает, когда установлен переключатель ввода радиокнопки. Однако я хочу обратного. Что-то вроде
if ($("input").not(.is(':checked'))) {
так что мой оператор if запускается, когда ни одна из радиокнопок не выбрана. Как лучше всего это сделать?

if ( ! $("input").is(':checked') )
Не работает?
Вы также можете попробовать перебрать элементы следующим образом:
var iz_checked = true;
$('input').each(function(){
iz_checked = iz_checked && $(this).is(':checked');
});
if ( ! iz_checked )
if ( !($("input").is(':checked')) ) Я тоже добавлю дополнительные скобки, чтобы было лучше.
if ($("input").is(":not(:checked)"))
AFAIK, это должно работать, проверено на последней стабильной версии jQuery (1.2.6).
Если мой профилировщик firebug работает нормально (и я знаю, как его использовать), это:
$('#communitymode').attr('checked')
быстрее чем
$('#communitymode').is('checked')
Можете попробовать на этой странице :)
И тогда вы можете использовать это как
if ($('#communitymode').attr('checked')===true) {
// do something
}
$("input").is(":not(':checked')"))
Это jquery 1.3, обратите внимание на знаки 'и "!
$('input:radio[checked=false]');
это тоже сработает
input:radio:not(:checked)
или же
:radio:not(:checked)
Это точно сработает. Мне потребовалось время, чтобы понять. Это самый элегантный вариант, который вы можете получить без написания кода.
У меня тоже отлично работает как селектор.
Это тоже работает. Кажется, самое короткое рабочее обозначение:
!$('#selector:checked')
(!$('#radio').is(':checked'))
Это сработало для меня
Вы также можете отфильтровать этот список по атрибуту имени, который используется этой группой переключателей.