使用 jQuery 设置选择选项的 HTML 数据属性

Gre*_*reg 2 html javascript jquery custom-data-attribute

如何将 HTML 数据属性添加到 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');
});
Run Code Online (Sandbox Code Playgroud)

Nor*_*ali 5

.data()方法采用配对的键和值。尝试这个:

   option.data('owner_id', item.owner_id);
   option.data('property_id', item.property_id);
Run Code Online (Sandbox Code Playgroud)

除此之外,您可以使用.attr()方法将属性添加到您的选项中。我只是给你举个例子。

  option.attr('data-owner_id', item.owner_id);
  option.attr('data-property_id', item.property_id);
Run Code Online (Sandbox Code Playgroud)

由于选项变量不是 jQuery 对象,因此您无法像上面的函数那样调用 jQuery 方法。另一种选择是使用本机 JavaScript .setAttribute()

option.setAttribute('data-owner_id', item.owner_id);
option.setAttribute('data-property_id', item.property_id);
Run Code Online (Sandbox Code Playgroud)