我在更改 div 的内容时遇到问题。我首先进行 ajax 调用并从服务器接收 JSON 数组。到目前为止,一切都很好。然后,我想将几个 div 的内容更改为我从服务器收到的内容。问题是第一次点击时内容不会改变。每次响应都可以,我已经检查了 Fiddler 并在我的代码中,我收到了正确的响应。但是,为什么我的页面上的 div 没有随着第一次点击而改变 为什么我每次都必须点击两次?我花了几个小时弄清楚这一点,尝试了一切,似乎没有什么合乎逻辑的。这是我的代码(项目是 MVC 4):
$('#btnsearch').click(function ()
{
var searchStr = $('#txtSearch').val();
var noOfPages = 1;
$.ajax({
type: "POST",
datatype: 'json',
url: $('#btnsearch').data('request-url'),/*URL from Razor's page*/
data: { pageNo: noOfPages, searchString: searchStr },/*MVC 4 call*/
success: function (jsontext)
{
$('#hiddenSearchResult').val(jsontext);
},
error: function ()
{
alert('Error when searching!');
}
});
var json = $('#hiddenSearchResult').val();
if (json.length === 0){ alert('result is empty!');
return;}/*with empty json, parsing throws error*/
json = JSON.parse(json);
if (json.Content == undefined) return;
for (var i = 0; i < json.Content.length; i++) {
switch (i) {
case 0:
$('#snippetsdivinner').html(json.Content[i].ContentString);
break;
case 1:
$('#snippetsdivinner1').html(json.Content[i].ContentString);
break;
case 2:
$('#snippetsdivinner2').html(json.Content[i].ContentString);
break;
case 3:
$('#snippetsdivinner3').html(json.Content[i].ContentString);
break;
}
}
});