javascript selector - Как получить все варианты выбора с помощью jQuery?




class attribute (13)

Как я могу получить все варианты выбора через jQuery, передав его идентификатор?

Я просто хочу получить их ценности, а не текст.


Answers

Я не знаю jQuery, но я знаю, что если вы получите элемент select, он содержит объект «options».

var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option

Вы можете взять все свои «выбранные значения» по имени флажков и представить их в укусе, разделенном «,».

Хорошим способом сделать это является использование jQuery $ .map ():

var selected_val = $.map($("input[name='d_name']:checked"), function(a)
    {
        return a.value;
    }).join(',');

alert(selected_val);

Это #myselectbox значения параметра #myselectbox в хороший чистый массив для вас:

// First, get the elements into a list
var domelts = $('#myselectbox option');

// Next, translate that into an array of just the values
var values = $.map(domelts, function(elt, i) { return $(elt).val();});

Для опции «Мультиселектор»:

$('#test').val() возвращает список выбранных значений. $('#test option').length возвращает общее количество опций (оба выбраны и не выбраны)


$("input[type=checkbox][checked]").serializeArray();

Или же:

$(".some_class[type=checkbox][checked]").serializeArray();

Чтобы увидеть результаты:

alert($("input[type=checkbox][checked]").serializeArray().toSource());

Если вы ищете все варианты с некоторым выделенным текстом, то код ниже будет работать.

$('#test').find("select option:contains('B')").filter(":selected");

$('select#id').find('option').each(function() {
    alert($(this).val());
});

Рабочий пример

Самый эффективный способ сделать это - использовать $.map()

Пример:

var values = $.map($('#selectBox option'), function(ele) {
   return ele.value; 
});

Вы можете использовать следующий код для этого:

var assignedRoleId = new Array();
$('#RolesListAssigned option').each(function(){
    assignedRoleId.push(this.value);
});


$("#id option").each(function()
{
    $(this).prop('selected', true);
});

Хотя, ПРАВИЛЬНЫЙ способ - установить свойство DOM элемента, например:

$("#id option").each(function(){
    $(this).attr('selected', true);
});

$.map , вероятно, самый эффективный способ сделать это.

var options = $('#selectBox option');

var values = $.map(options ,function(option) {
    return option.value;
});

Вы можете добавить параметры изменения в $('#selectBox option:selected') если вам нужны только те, которые были выбраны.

Первая строка выбирает все флажки и помещает их элемент jQuery в переменную. Затем мы используем функцию .map jQuery для применения функции к каждому из элементов этой переменной; все, что мы делаем, это возврат значения каждого элемента, поскольку это все, о чем мы заботимся. Поскольку мы возвращаем их внутри функции map, она фактически создает массив значений, как и требовалось.


Поскольку Elements with visibility: hidden or opacity: 0 are considered visible, since they still consume space in the layout (как описано для jQuery: visible Selector ) - мы можем проверить, действительно ли элемент виден таким образом:

function isElementReallyHidden (el) {
    return $(el).is(":hidden") || $(el).css("visibility") == "hidden" || $(el).css('opacity') == 0;
}

var booElementReallyShowed = !isElementReallyHidden(someEl);
$(someEl).parents().each(function () {
    if (isElementReallyHidden(this)) {
        booElementReallyShowed = false;
    }
});




javascript jquery jquery-selectors