我有这行代码:
$.ajax({
url: "ViewQuiz.aspx/SetAllQuestionsByQuizId",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: "{'quizId':'" + quizId + "'}",
success: function (data) {
htmlString += '<select class="inputTextStyle selectAnswerToQuestion">';
$.map(data.d, function (item) {
htmlString += '<option value="' + item.QuestionId + '">' + item.QuestionContent + '</option>';
});
htmlString += '</select>';
},
error: function (result) {
}
});
return htmlString;
htmlString
没有返回任何内容。
虽然如果我console.log
item
,它会返回我的对象。
为什么?
答案 0 :(得分:4)
Ajax意味着异步执行,一旦发出请求,控制将进一步移动。它不会等待返回ajax调用。
在您的示例中,将进行Ajax调用,并且当控制到达return
语句success
时,函数可能/可能未执行,因此它不返回任何内容。
您应该在success
函数本身中执行所需的操作。
success: function (data) {
//...........
htmlString += '</select>';
// Do the required things here instead of returning `htmlString`
},