javascript - JSON 数据更改未正确保存
问题描述
我正在尝试在将 Json 数据保存到数据库之前更新它们。我已将 json 放在一个 teaxtarea 中以查看更改,对于任何更新,我都可以在该 textarea 中看到它们。但是当我在那个 textarea 上做一个检查元素时,值没有改变。这怎么可能呢?那个检查元素会有所不同吗?当我尝试保存时,它总是保持不变。关于这里发生的事情有什么想法吗?以下是 json 的更新方式:
function saveEdit() {
var id = $("#menu_id").val();
var updatedTitle = $("#menuTitle").val();
var json = JSON.parse($('#nestable3-output').text());
$('#menuName').modal('hide');
updateObjectField(json, id, updatedTitle);
document.getElementById('nestable3-output').value = JSON.stringify(json)
}
function updateObjectField(obj, id, updatedTitle) {
obj.forEach((item) => {
if (item.id === parseInt(id)) {
item.content = updatedTitle;
} else {
if(item.children && Array.isArray((item.children))) {
updateObjectField(item.children, id, updatedTitle);
}
}
})
}
解决方案
不知道为什么,但问题是这一行:
document.getElementById('nestable3-output').value = JSON.stringify(json)
我改为:
$('#nestable3-output').text(JSON.stringify(json));
它奏效了。如果有人现在的原因,那就太好了。