Javascript 数据选项更改不是';jquery没有选择

Javascript 数据选项更改不是';jquery没有选择,javascript,jquery,Javascript,Jquery,我有这样的div: <div id="something-1" data-options='{"pause":"YES","delete":"NO", "kill":"NO"}'></div> $('#something-1' + item.id).attr("data-options", '{"pause":"YES","delete":"YES", "kill":"NO"}'); 当我用firebug检查时,我可以在html中看到更改的数据选项 然后,我从fire

我有这样的div:

<div id="something-1" data-options='{"pause":"YES","delete":"NO", "kill":"NO"}'></div>
$('#something-1' + item.id).attr("data-options", '{"pause":"YES","delete":"YES", "kill":"NO"}');
当我用firebug检查时,我可以在html中看到更改的数据选项

然后,我从firebug触发了这个“测试”函数,以查看数据在ajax更新后是否发生了更改:

(function() {
        window.checkChanges = checkChanges;
        function checkChanges(id) {
        var dataOptions = $("#" + id).data('options');

        for(var index in dataOptions) {
            console.log(index,dataOptions[index]);
        };
        }
    })();
但由于某些原因,ajax请求前后的数据选项是相同的。我需要以某种方式将live函数合并到这个函数中?或者别的什么,但我不知道是什么?有什么建议吗

编辑


Ajax请求将delete更改为
YES

将试图设置为
选项的对象的引号删除,以便将对象而不是字符串传递给
数据

$(selector).attr("data-options", {"pause":"YES","delete":"YES", "kill":"NO"});
演示:

仅更改一个值的另一种方法

$(selector).data('options').delete='YES'

您是否可能混淆了所选div的ID?在伪ajax请求中,在“something”之后添加一个item.id,该项在检查中不存在。那么它就可以正常工作了


charlietfl指出,可以在对象周围添加引号,但我认为它也可以使用引号。

为什么不从js本身尝试这些函数,而不是从firbug控制台尝试呢。