Как проверить с помощью jquery, если у опции есть опции?

Как проверить с помощью jquery, если у параметра есть параметры, и если он не отключает его и показывает [нет элементов]?

Ответы

Ответ 1

Один из способов сделать это:

if ($('#myselect option').length == 0) {
    $('#myselect').hide();
}

Ответ 2

var $select = $('input:select option');
if(!$select.length )
    $select.attr('disabled', true);

Или:

$('select:not(:has(option))').attr('disabled', true);

Ответ 3

Другой способ сделать это просто использовать функцию jQuery имеет

if ($('#myselect').has('option').length == 0) 
{
    // Hide and disable select input here
}

Информацию о функции jQuery с см. в: https://api.jquery.com/has/

Ответ 4

select:not(:has(option))

- селектор, который вы ищете. Вы можете использовать его, чтобы найти пустое поле выбора, отключить их, а затем добавить опцию "Нет опции" или какое-то подобное сообщение - например:

var noOptions = $('<option/>').html('No options');
$('select:not(:has(option))').attr('disabled',true).append(noOptions);

Здесь показан живой пример: http://jsfiddle.net/f3myz/

Ответ 5

если у вас есть пустая опция, вы можете:

#Allways you must have the empty option
if ($("select#your_class").children().size() == 1) {
  alert("Without options")
  $("select#your_class").hide()
} else {
  alert("With options")
  $("select#your_class").show()

Ответ 6

$('select.class>option').size()

ИЛИ если ваш выбор имеет идентификатор, а не класс

$('select#id>option').size()

он покажет вам, сколько вариантов внутри

Ответ 7

Я проверил это, и это сработало отлично, надеюсь, это поможет:

if($("#myselect").html() == ""){
    $("#myselect").html("<option>[not items]</option>");
    $("#myselect").addProp("disabled","disabled");
}