Javascript 检测页面上的两个元素是否具有相同的ID
页面加载时,从数据库中选择5项。当用户向下滚动时,又会加载5篇文章,以此类推 为了防止按“new”排序时出现重复帖子,我将页面加载时间放在一个隐藏的输入中,以便在JavaScript中使用:Javascript 检测页面上的两个元素是否具有相同的ID,javascript,php,jquery,Javascript,Php,Jquery,页面加载时,从数据库中选择5项。当用户向下滚动时,又会加载5篇文章,以此类推 为了防止按“new”排序时出现重复帖子,我将页面加载时间放在一个隐藏的输入中,以便在JavaScript中使用: <input id="loadTime" type="hidden" value="<?php echo time(); ?>"> 与其用JavaScript请求传递初始加载时间,不如存储并发送您在前一组5中收到的最后一篇文章的ID 然后,服务器端逻辑可以(在事务中)读出用户看到的
<input id="loadTime" type="hidden" value="<?php echo time(); ?>">
与其用JavaScript请求传递初始加载时间,不如存储并发送您在前一组5中收到的最后一篇文章的ID
然后,服务器端逻辑可以(在事务中)读出用户看到的最后一篇文章的“热门度”或“热门度”或创建日期,或您排序所依据的任何值,然后再选择值小于该文章值的下5篇文章。►是否可以检测页面上的两个元素是否具有相同的ID
可以找到具有重复Id的元素。您可以使用属性Id
的选择
演示
if($('[id=“same”]')。长度>1){
警报(“重复id”)
}
//删除最后插入的具有重复ID的元素的步骤
$('[id=“same”]').last().remove()
我能够解决它:
在添加新帖子后的success函数中,我循环遍历页面上的所有id(从中获取),然后删除具有该id的最后一个元素
$('[id]').each(function(){
var ids = $('[id="'+this.id+'"]');
if (ids.length>1 && ids[0]==this){
$("#"+this.id).last().remove();
}
});
最好更改逻辑,这样就不可能附加重复的元素,而不是检测它何时被添加到DOM中。@Rorymcrossan我使用new
(如我所述)来实现这一点但我不知道如何使用热排序或顶级排序。您使用的是什么数据库引擎?@frosty在这种情况下,如果不查看您的代码,我们就无法真正帮助您什么是“加载时间”?您不能按任何字段对数据进行排序吗?如果我这样做,$(“#相同”)。删除();
它总是删除带有该id的最后一个元素吗?还是删除所有元素?@frosty不,我想。我会更新答案。我正在处理it@frosty使用$('[id=“same”]').last().remove()
上次插入的元素。我已更新了我的答案。请检查如果我事先不知道ID的名称怎么办?只是为了检测重复的ID吗?@frosty问得好。我们必须对其进行一些筛选。循环每个元素以查找重复的ID。这不是一个好方法。但在这里,我们被迫这样做是一个重复的问题。:)
随时可以。快乐编码