Javascript 数据选项更改不是';jquery没有选择
我有这样的div: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 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控制台尝试呢。