关于这个问题: jQuery loop over JSON result from AJAX Success?
我有以下内容,这使得 Firefox 在返回太多项目(新 div)之前使用了太多的 cpu,其中只有一些“未定义”文本,尽管我可以看到(在我使用的小提琴页面上)我的方式想要检索项目(例如user.functionTitle)是正确的。这里出了什么问题?
var result = [{"id":7,
"loginID":"jdoe",
"userStatus":"ACTIVE",
"firstName":"John",
"middleName":"",
"prefix":"",
"lastName":"Doe",
"functionTitle":"Junior developer"},
{"id":8,
"loginID":"jadoe",
"userStatus":"ACTIVE",
"firstName":"Jane",
"middleName":"",
"prefix":"",
"lastName":"Doe",
"functionTitle":"Junior developer"}
];
下面是我尝试用firebug调试的ajax语句,但在“$ .each(result,function(idx,user){”行之后它只是挂起,直到Firefox告诉我一些javascript花费了太多时间......
$.ajax({
type : 'POST',
url : "../hrm/search",
contentType : 'application/x-www-form-urlencoded',
cache: false,
data: "name=" + $("#site-search").val(),
dataType : 'text',
success : function(result) {
if (result != null) {
$.each(result, function(idx, user) {
$('#found-users').append("<div class='option'>" +
"<div class='pass-wrapper'>" +
"</div>" +
"<div class='sr-content'>" + user.firstName + " " + user.prefix + " " + user.lastName + "</div>" +
"<div class='sr-content'>" + user.functionTitle + "</div>" +
+ "</div>");
});
$("#found-users").show;
} else {
$('#found-users').hide;
$('#found-users div').empty();
}
}
});
jsp 页面中的代码如下所示:
<div><input type="text" placeholder="search" id="site-search"></div>
<div id="found-users" class="search-results options">
</div>
首先:如果我把数据和下面的语句放在一个 jsfiddle 页面中,它会完全按照它应该做的那样做,它会弹出两次函数标题。当我将 div 添加到页面而不是弹出警报时,相同的代码如何执行两次以上?其次,为什么 user.functionTitle 突然返回 undefined?
$.each(result, function(idx, user) {
alert(user.functionTitle);
});