从元素中正确获取操作数据时遇到一些问题。 互联网上的任何地方似乎都没有用简单的答案来涵盖这么简单的问题。请帮忙。
我用返回的ajax请求操作了一个元素:
$("#last_comment_added").html("1457856458")
现在我在页面上的功能:
jQuery(document).ready(function($) {
var post_slug = $("#post_slug").html();
var last_comment_added = $("#last_comment_added").text();
if (post_slug && last_comment_added) {
setInterval(function() {
$.ajax({
type: "POST",
url: "ajax_comments.php",
data: {
"task": "updates",
"post_slug": post_slug,
"last_comment_added": last_comment_added
},
cache: false,
success: function(html) {
eval(html)
}
});
}, 10000);
}
});

我从元素中获取旧数据,而不是新的ajax" 1457856458"数据。
请帮忙。
答案 0 :(得分:1)
如果我理解你的问题,只是你创建了一个名为last_comment_added的变量并期望它不断更新,你将它设置为last_comment_added的文本,它永远不会更新你的间隔功能。这是一个应该让它更适合你的变化。
jQuery(document).ready(function($) {
var post_slug = $("#post_slug").html();
if (post_slug && last_comment_added) {
setInterval(function() {
$.ajax({
type: "POST",
url: "ajax_comments.php",
data: {
"task": "updates",
"post_slug": post_slug,
"last_comment_added": $("#last_comment_added").text()
},
cache: false,
success: function(html) {
eval(html)
}
});
}, 10000);
}
});

答案 1 :(得分:1)
不要使用eval。
尝试
$(document).ready(function() {
var post_slug = $("#post_slug").html();
var last_comment_added = $("#last_comment_added").html();
if (post_slug && last_comment_added) {
setInterval(_update, 10000);
}
});
function _update() {
$.ajax({
type: "POST",
url: "ajax_comments.php",
data: {
"task": "updates",
"post_slug": post_slug,
"last_comment_added": last_comment_added
},
cache: false,
success: function(data) {
$("#last_comment_added").html(data)
}
});
}
您只能从 PHP 返回 NEW 数据。 (例如:echo '1457856458';
)