[英]jquery ajax success callback difficulty
我有以下代碼:
@{
ViewBag.Title = "Index";
}
<h2>
Index</h2>
<div data-role="page">
<div data-role="header">
...</div>
<div data-role="content">
<a id="btnShowCustomers" data-role="button" href="#secondDiv"></a>
</div>
<div data-role="footer">
...</div>
</div>
<div id="secondDiv" data-role="page">
<div id="list" data-role="content">
</div>
</div>
<div id="customerDetailsDiv" data-role="page">
<div data-role="content">
</div>
</div>
<script type="text/javascript">
$(document).ready(function (event) {
$('#btnShowCustomers').bind('vclick', function (event) {
GetCustomers();
});
});
function GetCustomers() {
var webMethod = "Home/GetCustomers";
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: webMethod,
data: "{}",
dataType: "json",
success: function (dataObj) {
$(dataObj).each(function () {
if ($(this).CanConsume) {
alert('can consume');
$('<a href="#" data-date="' + $(this).DateActivated + '" data-id="' + $(this).ID + '">' + $(this).Name + '</a>').appendTo('#list');
}
})
}
});
}
</script>
從服務器端,我返回一個Customer對象列表。 客戶具有以下特性;
我想迭代返回的結果集並構建錨元素並將它們附加到div命名列表中。 你知道為什么這不起作用嗎? 我沒有javascript錯誤。
dataObj
是普通JavaScript(JSON)對象的常規列表。 不要使用jQuery迭代它,因為jQuery.each(...)迭代DOM元素。
你試一試
...
success: function(dataObj){
for(var i=0; i < dataObj.length; i++){
var obj = dataObj[i];
if (obj.CanConsume) {
alert('can consume');
...
}
}
}
這應該工作。
否則,請嘗試使用Firebug或Chrome開發工具來檢查響應或在成功回調中設置斷點。 這應該給你足夠的信息來解決問題。
不幸的是,jQuery殺死了錯誤。
如果這不起作用,請發布一些JSON。
該死的,再次:
$.each(dataObj, function (index, element) {
if (element.CanConsume) {
alert('can consume');
$('<a href="#" data-date="' + element.DateActivated + '" data-id="' + element.ID + '">' + element.Name + '</a>').appendTo('#list');
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.