Как получить данные из атрибута данных html5, который находится в списке выбора, в массив?
Я должен в основном загрузить некоторые данные с загрузкой формы, чтобы использовать в операциях JavaScript на странице. Я загружаю данные, как показано ниже:
<select id="allrecords">
<option data-s-type="X" data-n-type="9" value="xxx">xxx</option>
<option data-s-type="X" data-n-type="9" value="lmn">lmn</option>
<option data-s-type="X" data-n-type="8" value="xyz">xyz</option>
<option data-s-type="Y" data-n-type="3" value="zzz">zzz</option>
...
</select>
Исходя из этих данных, свойства data-s-type и data-n-type используются для определения того, какие значения будут добавлены в массив, который впоследствии будет использоваться в программе. Я не могу придумать, как получить этот массив, используя этот список выбора.
например, когда data-s-type="X" И data-n-type=9, array = [xxx,lmn]
Мне не нужно загружать данные в виде скрытого списка выбора, если у вас есть лучший совет, пожалуйста, дайте мне знать.
1 ответ
$.map
создает массивы, и внутри функции вы проверяете нужные значения, а если они совпадают, вы возвращаете значение элементов в массив, например, так:
var arr = $.map($('#allrecords option'), function(el,i) {
if ($(el).data('s-type') == 'X' && $(el).data('n-type') == '9')
return el.value;
});
arr //is now ['xxx', 'lmn']