gpt4 book ai didi

javascript - 如何使用字符串查找和更新对象

转载 作者:行者123 更新时间:2023-12-02 18:55:06 27 4
gpt4 key购买 nike

在 javascript 中,我正在加载一个 json 对象,并尝试更新其中的值。 html 中的元素具有与其路径匹配的 id,例如“values.one”元素:

{"values":{"one":"val1","two":"val2"},"OtherStuff":"whatever"}

将与此元素相关:

<input id="values_one" type="text">val1</div>

当这个元素失去焦点时,我想获取“#values_one”的值(使用 jQuery)并设置使用我的 json 对象中的任何值。我已经弄清楚如何从现有的 json 对象中获取值(请参阅下面我的可怕代码),但最终除了值之外什么也没有,因此设置它不会影响 json 对象。关于如何执行此操作的任何建议(假设我不知道失去焦点的元素是“values_one”、“values_two”还是可能映射到 json 对象的任何其他元素)?

这是我目前拥有的代码(不起作用),但很高兴将其废弃以获得实际有效的东西:

var saveEdit = function() {
var data = getJson();
pathElements = $(this).attr('id').split('_');
length = pathElements.length;
var path = data[pathElements[0]];
index = 1;
while (index < length) {
path = path[pathElements[index]];
length -= 1;
}
path = $(this).text(); //resets "path", but not data.values.one
$(this).unbind();
}

最佳答案

循环一个比长度短的元素,以便获得包含与最后一个标识符匹配的属性的元素:

var path = data;
for (index = 0; index < length - 1; index++) {
path = path[pathElements[index]];
}
path[pathElements[length - 1]] = $(this).text();

关于javascript - 如何使用字符串查找和更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15456478/

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