我正在调用我的服务器重命名特定文件,这是代码客户端:
function rename_file(filepath, filename, object){
$("#loading").html('<i class="fa fa-circle-o-notch fa-spin"></i>');
$.getJSON('queries.php', {
q: 'renameFile',
old_path: filepath,
new_name: filename
}, function(data){
if (data.message == "File renamed") {
$("#loading").html(data.message);
console.log(data.name);
var mod_name = data.name;
object.data('file', mod_name);
console.log(object.data('file'));
} else {
$("#loading").html(data.message);
}
});
}
该函数的调用方式如下:
rename_file(old_filepath, new_filename, $(this));
$(this)
的位置:
<div class="filename_container" id="file_165161" data-file="toto.doc" data-folder="" class="fileClic">
toto.doc
</div>
当我登录控制台时,我将toto.doc
重命名为toto2016.doc
时得到的是:
toto2016.doc
toto2016.doc
因此data-file
中包含的数据应该是toto2016.doc
,但是当我在Chrome检查器中检查时,我仍然会得到toto.doc
。因此,如果我将文件重命名两次,则会失败。
我已经测试过正确的对象传输到函数,它是。我在这里做错了吗?
答案 0 :(得分:3)
这是设计的。当您使用data()
设置值时,它只更新jQuery在内存中保留的对象 - 它不会更新DOM中元素的任何属性。
如果使用data()
的getter检索值,您会看到该值已正确设置。