伙计我有一个函数,它使用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代码。
答案 0 :(得分:1)
改用类:
function BindNotice(values) {
$('#divNotices').append('...some code...' +
'<input class="hiddenNotice" type="hidden" value="' + values.LastNoticeID +
'" />' + '...some code...');
}
然后:
var lastNoticeID = $('.hiddenNotice').last().val();
或者,您可以将LastNoticeID
存储在变量中:
var lastNoticeID = 0;
function BindNotice(values) {
$('#divNotices').append('...some code...' +
'<input class="hiddenNotice" type="hidden" value="' + values.LastNoticeID +
'" />' + '...some code...');
lastNoticeID = values.LastNoticeID;
}
答案 1 :(得分:-1)
您似乎要添加更多相同ID的元素。 ID应该是单实例,因此Jquery只会抓取DOM中的第一个实例。 (这就是$('#hiddenLastNoticeID').val();
每次都相同的原因)