Jquery javascript-这段代码有什么错误?
这是运行良好的javascript代码的一部分。 但我想在//Ex2行中显示变量选项:Jquery javascript-这段代码有什么错误?,jquery,Jquery,这是运行良好的javascript代码的一部分。 但我想在//Ex2行中显示变量选项: if(profId==10){ //alert(profId); $("#div_sel_residentType").show( "slow" ); var selectElm="<label for=\"sel_residentType\">Sélectionniez le Type du Résident:</label><select class
if(profId==10){
//alert(profId);
$("#div_sel_residentType").show( "slow" );
var selectElm="<label for=\"sel_residentType\">Sélectionniez le Type du Résident:</label><select class=\"form-control\" id=\"sel_residentType\"><option value=\"0\" selected=\"\">Type Résident</option>";
var options ="";
$.get("../api/v1/get/menus/typeresident.json.php", function(dataset, status){
for (var index in dataset){
options = options + "<option value=\""+dataset[index].id+"\">"+dataset[index].description+"</option>";
//console.log(options);
}
console.log(options);//Ex1
});
console.log(options);//Ex2
selectElm = selectElm + options + "</select>";
//console.log(selectElm);
//$("#div_sel_residentType").html(selectElm);
}
if(profId==10){
//警报(profId);
$(“#div#u sel_residentType”).show(“slow”);
var selectElm=“Séselectionniez le Type du Résident:Type Résident”;
var期权=”;
$.get(“../api/v1/get/menus/typeresident.json.php”),函数(数据集,状态){
对于(数据集中的var索引){
选项=选项+“”+数据集[索引]。说明+“”;
//console.log(选项);
}
console.log(选项);//Ex1
});
console.log(选项);//Ex2
selectElm=selectElm+options+“”;
//console.log(selectElm);
//$(“#div_sel_residentType”).html(selectElm);
}
我想了解为什么它会显示console.log(选项)//Ex1
但不console.log(选项)//Ex2
$。get(…)
启动异步调用。因此,执行将继续执行以下语句,并且只有在稍后(GET请求完成后)才会执行回调
因此,console.log(选项)//Ex2
行在填充选项
之前执行。因此,它相当于console.log(“”
$。get(…)
启动一个异步调用。因此,执行将继续执行以下语句,并且只有在稍后(GET请求完成后)才会执行回调
因此,
console.log(选项)//Ex2
行在填充选项
之前执行。因此,ajax调用是async
,这相当于console.log(“”)
,这意味着此时Ex2
上不存在该值。解决方法是使用延迟对象查看此页面:
链接中的示例:
因为jQuery.get方法返回一个jqXHR对象,该对象是派生的
从延迟对象中,我们可以使用
.done()方法
代码的完整示例:
var options = "";
var defObj = $.get("../api/v1/get/menus/typeresident.json.php", function(dataset, status) {
for (var index in dataset) {
options = options + "<option value=\"" + dataset[index].id + "\">" + dataset[index].description + "</option>";
//console.log(options);
}
console.log(options); //Ex1
});
// get something done after ajax respone
defObj.done(function() {
console.log(options); //Ex2
selectElm = selectElm + options + "</select>";
});
ajax调用是async
,这意味着此时Ex2
上不存在该值。解决方法是使用延迟对象查看此页面:
链接中的示例:
因为jQuery.get方法返回一个jqXHR对象,该对象是派生的
从延迟对象中,我们可以使用
.done()方法
代码的完整示例:
var options = "";
var defObj = $.get("../api/v1/get/menus/typeresident.json.php", function(dataset, status) {
for (var index in dataset) {
options = options + "<option value=\"" + dataset[index].id + "\">" + dataset[index].description + "</option>";
//console.log(options);
}
console.log(options); //Ex1
});
// get something done after ajax respone
defObj.done(function() {
console.log(options); //Ex2
selectElm = selectElm + options + "</select>";
});
这实际上首先执行。看看变量选项是如何定义的:
var options = "";
因此,如果您正在寻找要打印到控制台的内容,它只是一个空白,因此不会显示任何内容
这实际上首先执行。看看变量选项是如何定义的:
var options = "";
因此,如果您正在寻找要打印到控制台的内容,它只是一个空白,因此不会显示任何内容 Ex2
在$调用后立即执行。get
调用Ex1
在调用收到响应后执行。$.get
是异步的,这意味着在响应可用时将调用您移交给它的函数。同时,您的代码将继续执行,进入//Ex2,其中选项仍为“”。Ex2
在调用$后立即执行。get
调用Ex1
在调用收到响应后执行。$.get
是异步的,这意味着在响应可用时将调用您移交给它的函数。同时,您的代码将继续执行,进入//Ex2,其中选项仍然为“”。是。。这是真的。。如何在$get()之后进行回调?好的,不用担心。。。我只是放了一个.done()并解决了。谢谢。。这是真的。。如何在$get()之后进行回调?好的,不用担心。。。我只是放了一个.done()并解决了。谢谢