jquery - 在哪里存储额外信息?

时间:2010-07-21 03:29:06

标签: jquery

所以我有一个我一直在做的插件,它需要一个选择框然后隐藏它并在其中创建一个带有锚链接的div。 (下拉部分等工作正常。)

当我创建锚元素时,我应该在哪里存储它们代表的选项值?单击它们时,我需要能够将数据放回选择框中。

想法?意见?

3 个答案:

答案 0 :(得分:2)

data功能非常方便。

// Store
$('#some_selector').data('foo', 'bar');

// Retrieve
var value = $('#some_selector').data('foo');

答案 1 :(得分:1)

我想到了两个想法。首先,不要存储值,使用索引选择项目:

var realSelect = $("select");
$("#fakeselect").delegate("a", "click", function (e) {
  e.preventDefault();
  realSelect[0].selectedIndex = $(this).index();
});

当然,您也可以使用jQuery data函数将值与链接相关联:

$("option").each( function(i, el) {
   $("<a />", {
     html: el.innerHTML,
     data: { val: $(el).val() }
   }).appendTo("#fakeselect");
});

$("#fakeselect").delegate("a", "click", function (e) {
  e.preventDefault();
  alert( $(this).data('val') ); // alerts value
});

答案 2 :(得分:0)

使用HTML 5 data-属性。

http://ejohn.org/blog/html-5-data-attributes/