5

我想知道是否有可能向 JQuery 新选项添加​​额外的数据。我得到了一些选择对象,并动态附加了内容:

select.append(new Option(item.name, item.id))

这会产生一个 HTML,例如:

<option value="22">Uniqa OC Zawodu</option>

我想向选项添加额外的数据,所以我的 HTML 看起来像:

<option value="22" data-url="some_data">Uniqa OC Zawodu</option>
4

4 回答 4

10

你所拥有的是 vanilla JavaScript,你没有使用 jQuery 库。使用 jQuery,您可以将对象传递给它。对象的属性映射到它们对应的 DOM 属性。请注意,data-*属性由 jQuery 内部缓存,它们不会作为属性添加到 DOM,因此它们是不可见的:

$('<option/>', {
    text: 'Uniqa OC Zawodu',
    value: 22,
    data: {
      url: 'some_data',
      whatever: 1 
    }
}).appendTo(select);

要检索data-*属性,您可以使用.data()方法:

var url = $('option').data('url');
于 2013-09-26T12:07:20.037 回答
2

这边走:

 $('#SelectOptionId').append('<option value="22" data-url="some_data">someData</option>');
于 2013-09-26T11:59:37.970 回答
0

你尝试过类似的东西吗

$('option').attr('data-url','some_data');
于 2013-09-26T11:59:00.280 回答
0

追加后,只需执行以下操作:

$('select > option').each(function(i, item) {
 var element = $(item);
 element.data('url', 'some_data');
});

这里的例子:http: //jsfiddle.net/2eeSt/

于 2013-09-26T11:59:18.220 回答