Нельзя использовать класс, имя или идентификатор для
заполнить второе значение, как они есть
использовал уже. и может иметь только один
значение в атрибуте значения
Хорошо, если вы не можете использовать эти (обычные) методы, это ограничивает ваш выбор. Поскольку вы уже используете jQuery, на ум приходит функция .data (). Это в основном позволяет хранить пары ключ / значение в любом данном объекте DOM. Таким образом, вы можете прокрутить все ваши варианты в списке и
$('#selectID options').each(function(){
$.data($(this), 'key', 'value')
});
Подробнее о .data () здесь
Изменить:
Не будет никаких изменений в вашей HTML-структуре, что звучит как бонус в этой ситуации. Функция .data () просто позволяет вам хранить «метаданные» для любого существующего HTML-элемента на вашей странице. Если бы вы просматривали источник на странице, этих данных не было бы. Он хранится где-то на земле jQuery, и я не могу точно сказать, как этот механизм работает, хотя я предполагаю, что это просто слой абстракции в базовом массиве JavaScript. В этом случае вы будете прикреплять кусочек данных к каждому из ваших элементов
.
Таким образом, чтобы установить данные, вы используете цикл, как показано выше. Затем, чтобы получить данные, вам просто нужно знать, какая опция выбрана в данный момент, а затем снова использовать .data () и ключ, чтобы вернуть значение.
var storedValue = $.data( $('#selectID option:selected'),'key' )
Поиск прост, я ожидаю, что ваша задача - получить данные, чтобы вы могли их установить. Один из способов - сгенерировать javascript на стороне сервера, а затем отправить его на страницу. Вы можете в конечном итоге не использовать цикл, поскольку я собираюсь предположить, что каждое значение уникально, оно может выглядеть примерно так:
$.data( $('#selectID options:eq(0)'), 'key', 'value1' );
$.data( $('#selectID options:eq(1)'), 'key', 'value2' );
$.data( $('#selectID options:eq(2)'), 'key', 'value3' );
$.data( $('#selectID options:eq(3)'), 'key', 'value4' );
'value1' может быть любым, включая строку json, которая позволит вам хранить несколько значений одним ключом, если это будет необходимо.
И, наконец, если вы собираетесь использовать эту функцию несколько раз, было бы довольно легко создать плагин jQuery, который позволит вам сделать это с меньшими затратами труда, но это ответ на другой вопрос.