gpt4 book ai didi

javascript - 更新后的 JSON 对象显示在 DOM 和本地存储中,但通过 chrome 开发者控制台访问时不显示?

转载 作者:行者123 更新时间:2023-11-28 05:23:33 27 4
gpt4 key购买 nike

在下面的js fiddle 中:https://dotnetfiddle.net/aNQEy3 ,我正在初始化一个对象。当您单击“更新”时,我将执行 ajax 调用,并在成功回调中使用新的属性和值更新对象。我可以看到本地存储和 DOM 中更新的对象,但是当我在 chrome 控制台中键入它时,我看不到更新的值。以下是更多详细信息:

初始化对象:

<script type="text/javascript">

var localClientStorage = window.localStorage;

var cartObj = {"one":"1","two":"2"};

localClientStorage.setItem("cartObj",JSON.stringify(cartObj));

$('#cartObj').text(JSON.stringify(cartObj));

</script>

运行后,我看到以下内容:

本地存储:

enter image description here

DOM:

enter image description here

控制台:

enter image description here

当我单击更新功能时,它会运行以下代码,从存储中获取对象并添加新值,但是当我在控制台中键入“cartObj”时,它仍然显示旧值:

    <script type="text/javascript">



$(function(){


$('.submit').click(function(){


$.ajax({
url: '@Url.RouteUrl(new{ action="Update", controller="Home"})',

type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function() {


var localClientStorage = window.localStorage;

var cartObj = localClientStorage.getItem("cartObj");

cartObj = JSON.parse(cartObj);

cartObj.three = "3";

localClientStorage.setItem("cartObj", JSON.stringify(cartObj));


$('#cartObj').text(JSON.stringify(cartObj));
}});

});

});

</script>

点击更新后,LocalStorage 和 DOM 显示更新后的值{"one":"1","two":"2","third":"3"},但是控制台仅显示:

enter image description here

如何在控制台中显示更新后的值?我尝试使用类似的内容更新脚本元素内的内容,看看刷新是否有效,但没有:

$("#cartObj").load(location.href+" #cartObj>*","");

为了查看输出,您必须在控制台中选择 mvc-output-iframe。

最佳答案

您有两个变量cartObj。在第一个代码段中创建的一个全局代码,即您在控制台中看到的代码。

在后回调中,您创建另一个变量 cartObj,它是函数作用域的本地变量并隐藏全局变量。一旦函数执行完毕,它就会被销毁。回调函数未触及全局变量cartObj

关于javascript - 更新后的 JSON 对象显示在 DOM 和本地存储中,但通过 chrome 开发者控制台访问时不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40346906/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com