jquery - 使用 jQuery.data() 检索数据集

标签 jquery

我在第一次单击时使用 jQuery.data() 将一些数据设置为 div。在第二次单击时,当我尝试检索它时,它给了我“未定义”。知道我哪里错了吗?

enter image description here

请参阅jsFiddle

<div class="player forward playerposition">
    <input type="button" class="addplayer addforward" value="+" />
</div>

$(document).ready(function () {
    $(document).on('click', '.addplayer', storeData);
    $(document).on('click', '.removeplayer', deletedata);
});

function storeData() {
    var div = $(this);
    $.data(div, 'testdata', {
        'Name': 'Ronaldo'
    });
    var data = $.data(div, 'testdata');
    console.log(data);
    div.val('x');
    div.removeClass('addplayer');
    div.addClass('removeplayer');
}

function deletedata() {
    var div = $(this);
    var data = $.data(div, 'testdata');
    console.log(data);
    div.removeData(div, 'testdata');
    div.val('+');
    div.removeClass('removeplayer');
    div.addClass('addplayer');
}

最佳答案

jQuery.data() api 期望 dom 元素作为其第一个参数,而不是 jQuery 对象

var data = $.data(this, 'testdata');

还有removeData()期望将 key 作为其第一个参数删除

div.removeData('testdata');

演示:Fiddle

<小时/>

另一种方法是使用 .data() jQuery 对象的方法如

div.data('testdata', {
    'Name': 'Ronaldo'
});
var data = div.data('testdata');

演示:Fiddle

关于jquery - 使用 jQuery.data() 检索数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25841219/

相关文章:

jquery - 循环遍历元素并添加/删除类

javascript - 如何让 jQuery Simple Slider 显示初始值?

javascript - 为什么我的上下文选择器和 .buttonset() 在 ie 中花了这么长时间

javascript - 单选按钮未在 Angular 2 中被检查

javascript - scrollLeft 使用 -webkit-overflow-scrolling : touch 自动返回到旧位置

javascript - 在 jquery mobile 中执行页面加载功能

javascript - 文本框事件 JavaScript

javascript - 模拟 jQuery :visible selector with plain Javascript

javascript - jQuery touchstart 多个元素

javascript - 如果文本长度增加jquery,则 overflow hidden