在ajax调用中访问函数外部变量的问题

$.getJSON(“http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&json.wrf=?", function(result){

//$.each(result.response.docs, function(result){

                if(result.response.numFound==0)

{

$.ajax({

url: "http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&spellcheck=true&json.wrf=?",

async:false,

success: function(result){

$.each(result.spellcheck.suggestions, function(i,item){

newquery=item.suggestion;

});

}

});

}

我得到我必须使ajax调用异步的问题。所以我确实喜欢上面的代码,但仍然无法在if块之外获取更新的newquery。它仍然显示newquery的旧值。请建议我在哪里做错了

$(document).ready(function(){

// This function get the search results from Solr server

$("#submit").click(function(){

var query=getquerystring() ; //get the query string entered by user

// get the JSON response from solr server

var newquery=query;

$.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&json.wrf=?", function(result){

//$.each(result.response.docs, function(result){

if(result.response.numFound==0)

{

$.ajax({

url: "http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&spellcheck=true&json.wrf=?",

async:false,

dataType: 'json',

success: function(json){

$.each(json.spellcheck.suggestions, function(i,item){

newquery=item.suggestion;

});

}

});

}

$.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=20&q="+newquery+"&sort=price asc&hl=true&hl.fl=description&hl.usePhraseHighlighter=true&json.wrf=?", function(result){

现在,如果result.response.numFound == 0,我想在$getjosn()中使用此更新的newquery,否则newquery将保留旧值

回答:

试试这个:

$(document).ready(function(){

// This function get the search results from Solr server

$("#submit").click(function(){

var query=getquerystring() ; //get the query string entered by user

var newquery=query;

$.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&json.wrf=?", function(result){

if(result.response.numFound==0)

{

$.ajax({

url: "http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&spellcheck=true&json.wrf=?",

async:false,

dataType: 'json',

success: function(json){

$.each(json.spellcheck.suggestions, function(i,item){

newquery=item.suggestion;

});

$.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=20&q="+newquery+"&sort=price asc&hl=true&hl.fl=description&hl.usePhraseHighlighter=true&json.wrf=?", function(result){

}

});

}

}else{

$.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=20&q="+newquery+"&sort=price asc&hl=true&hl.fl=description&hl.usePhraseHighlighter=true&json.wrf=?", function(result){

}

以上是 在ajax调用中访问函数外部变量的问题 的全部内容, 来源链接: utcz.com/qa/418893.html

回到顶部