如何使用jQuery .data()方法发送对象?

时间:2013-12-08 12:27:02

标签: jquery

我不确定这是可能的,但是......

假设我有以下对象:

var myData = { 1 : 1. 2 : 2 }

如何使用jQuery的.data方法将对象附加到以下url。

$('.link').html('<a href="#" data-test="' + myData + '">test</a>');

如果我将点击功能绑定到以下网址,我应该能够检索 myData

$('.link a').on('click', function(e) {
    $(e.currentTarget).data('test');
})

但它没有用......我得到一个名为的字符串值:[“object Object”]

所以我想,在使用jQuery的.data方法发送它之前,我需要准备-myData-对象。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

var myData = { '1' : 1, '2' : 2 };
var $anchor = $('<a />', {href:'#', text : 'test'}).data('test', myData);

$('.link').empty().append($anchor);


$('.link a').on('click', function(e) {
    e.preventDefault();

    console.log($(this).data('test'));
});

答案 1 :(得分:1)

由于您有数据对象,请不要将其设置为属性,请使用.data()setter设置test的值

$('<a href="#">test</a>').appendTo($('.link').empty()).data('test', myData);

然后

$('.link a').on('click', function(e) {
    var myData = $(this).data('test');
})