.data()无法更新Chrome检查器中显示的代码

时间:2016-04-05 19:25:41

标签: 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, 
        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。因此,如果我将文件重命名两次,则会失败。

我已经测试过正确的对象传输到函数,它是。我在这里做错了吗?

1 个答案:

答案 0 :(得分:3)

这是设计的。当您使用data()设置值时,它只更新jQuery在内存中保留的对象 - 它不会更新DOM中元素的任何属性。

如果使用data()的getter检索值,您会看到该值已正确设置。