Использование jquery для установки атрибутов данных html5 в опции выбора

Просто интересно, может ли кто-нибудь сказать мне, как добавить элементы данных HTML5 в сгенерированный jquery <select><option>, У меня есть следующий код, который программно устанавливает <options> выбора из результатов запроса Ajax.

$request.then(function (data) {
    var p_id = $("[name='property_id']").val() || -1;
    for (var d = 0, l = data.length; d < l; d++) {
       var item = data[d];
       var option = new Option(item.text, item.id, false, (item.id === p_id ? true : false));
       // this doesnt work
       option.data('data-owner_id') = item.owner_id;
       option.data('data-property_id') = item.property_id;
       $element.append(option);
    }
    $element.trigger('change');
});

Заранее спасибо.

1 ответ

Решение

.data() Метод принимает ключ и значение в паре. Попробуй это:

   option.data('owner_id', item.owner_id);
   option.data('property_id', item.property_id);

Помимо этого, вы можете использовать .attr() способ добавить атрибут в ваш вариант. Я просто приведу пример для вас.

  option.attr('data-owner_id', item.owner_id);
  option.attr('data-property_id', item.property_id);

Отредактировано:
Поскольку переменная option не является объектом jquery, вы не можете вызвать метод jquery, как описано выше. Другой вариант использует нативный JavaScript .setAttribute(),

option.setAttribute('data-owner_id', item.owner_id);
option.setAttribute('data-property_id', item.property_id);
Другие вопросы по тегам