Javascript .data()无法更新Chrome inspector中显示的代码
我正在呼叫我的服务器以重命名特定文件,以下是代码客户端:Javascript .data()无法更新Chrome inspector中显示的代码,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,我正在呼叫我的服务器以重命名特定文件,以下是代码客户端: 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,
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);
}
});
}
其中,$(此)
为:
<div class="filename_container" id="file_165161" data-file="toto.doc" data-folder="" class="fileClic">
toto.doc
</div>
因此数据文件
中包含的数据应该是toto2016.doc
,但是当我在Chrome inspector中检查时,我仍然得到toto.doc
。因为如果我重命名文件两次,它就会失败
我已经测试过,正确的对象被传输到函数,并且它是正确的。我做错什么了吗?这是故意的。使用
data()
设置值时,它只更新jQuery保存在内存中的对象,而不更新DOM中元素的任何属性
如果使用
data()
的getter检索该值,您将看到该值已正确设置。谢谢,getter确实提供了正确的信息。这是一个错误还是故意的?完全是故意的。使用内存中对象意味着比每次请求都必须读/写DOM更好的性能,还意味着可以存储任何数据类型,而不仅仅是字符串。例如,如果需要,您可以在data()
中存储选择器、日期甚至jQuery对象。哦,存储对象非常有趣!谢谢你的解释。一旦计时器允许,我会将其标记为已解决。谢谢你,没问题,很高兴能帮上忙,就是这样。您可以依赖jQuery的内部缓存中设置的data()
,因此只要始终通过data()
检索它,您就不会有任何问题。
<div class="filename_container" id="file_165161" data-file="toto.doc" data-folder="" class="fileClic">
toto.doc
</div>
toto2016.doc
toto2016.doc