Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery javascript-这段代码有什么错误?_Jquery - Fatal编程技术网

Jquery javascript-这段代码有什么错误?

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

这是运行良好的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=\"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()并解决了。谢谢