0

我试图在一个函数中使用 jQuery.data 存储一些数据并在另一个函数中访问,但在第一个函数之外,数据出现未定义。看一下代码:

$("input:radio[name=gender]:checked").each(function()
{
    var genderChosen = $(this).val();
    alert(genderChosen);
    var gender = $(".gender");
    jQuery.data(gender, 'genderChosen', genderChosen);
    alert(jQuery.data(gender, 'genderChosen'));
    // Displays "male" or "female" depending on what's selected
});

var gender = $(".gender");
alert(jQuery.data(gender, 'genderChosen'));
// Displays "undefined"

有人可以帮我在原始功能之外检索这些数据吗?我认为这就是 jQuery.data 方法的重点......

谢谢!

4

1 回答 1

1

你应该这样设置:

$('.gender').data('genderChosen', genderChosen);

你应该像这样得到它:

var genderChosen = $('.gender').data('genderChosen');

你是对的。您应该能够从任何地方访问附加的数据。

是的。理论上,当您将数据附加到 DOM 元素时,jQuery.data() 与 .data() 的作用相同。我不确定为什么它对您不起作用,也许这方面存在特定于浏览器的怪癖。

于 2013-03-28T19:32:49.717 回答