gpt4 book ai didi

jQuery:发出json请求,在回调中处理它,在回调函数之外访问它?

转载 作者:行者123 更新时间:2023-12-01 08:28:43 26 4
gpt4 key购买 nike

$("select[name=field[]]").live("change", function() {
$.getJSON("/json.php", {
id: $(this).val(),
ajax: 'true'
}, function(j) {
options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
});
$(this).siblings("[name=logic[]]").html(options);
});

所以,我想将 json 回调的结果(它放入选项中,一个全局变量)粘贴到首先激活事件的对象的同级中。我上面的代码几乎成功了,但不太有效,因为回调不会立即发生,所以它在同级中粘贴了一个空白字符串。提前致谢,如果我有任何术语错误,抱歉:)

最佳答案

我认为你正在向后看。您可以更轻松地使外部变量可供内部函数使用。想法如下:

$("select[name=field[]]").live("change", function() {
var theSelect = $(this);
$.getJSON("/json.php",{id: $(this).val(), ajax: 'true'}, function(j){
options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
theSelect.siblings("[name=logic[]]").html(options);
});
});

我也有一个顾虑。您似乎正在尝试将选项添加到触发事件的选择中。他们是 child ,不是 sibling 。按照您的方式,这将为事件源同级的每个选择添加选项。如果我的假设是正确的,您可以在内部 for 循环中执行类似的操作,而不是构建一个巨大的 HTML 字符串:

$('<option>blah blah</option>').appendTo(theSelect);

关于jQuery:发出json请求,在回调中处理它,在回调函数之外访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1482578/

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