【发布时间】:2014-06-11 03:17:38
【问题描述】:
伙计们,我有一个函数,它使用 ajax 调用根据 div 中的值动态检索数据。现在函数中的lastNoticeID 值没有得到更新,因为它不在任何循环中..因此它不断重复相同的数据..
代码:
function callMoreData() {
var lastNoticeID = $('#hiddenLastNoticeID').val();
$.ajax({
type: "GET",
url: "/api/values/getnotice?num=" + lastNoticeID,
dataType: "json",
crossDomain: true,
async: true,
cache: false,
success: function (data) {
$.each(data, function (index, value) {
BindNotice(value);
});
},
error: function (x, e) {
alert('problem while fetching records!');
}
});
}
function BindNotice(values) {
$('#divNotices').append('...some code...' +
'<input id="hiddenLastNoticeID" type="hidden" value="' + values.LastNoticeID +
'" />' + '...some code...');
}
正如您在上面的代码中看到的那样,我正在从上面的 div 中检索值,然后将其传递给 webApi url...一遍又一遍地使用相同的值,即var lastNoticeID 没有得到更新。如何让它更新每个滚动事件?
btw divNotices 与 BindNotice 函数具有相同的 html 代码。
【问题讨论】:
-
ID 必须是唯一的。您的
#hiddenLastNoticeId将被复制。 jQuery 将始终匹配第一个元素。 -
你不能有多个元素具有相同的
id。像您一样按id选择只会返回1 个元素(第一个)。改用一门课,然后选择并学习最后一门课。或者更好的解决方案可能是将LastNoticeID存储在一个变量中。
标签: javascript jquery