Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测页面上的两个元素是否具有相同的ID_Javascript_Php_Jquery - Fatal编程技术网

Javascript 检测页面上的两个元素是否具有相同的ID

Javascript 检测页面上的两个元素是否具有相同的ID,javascript,php,jquery,Javascript,Php,Jquery,页面加载时,从数据库中选择5项。当用户向下滚动时,又会加载5篇文章,以此类推 为了防止按“new”排序时出现重复帖子,我将页面加载时间放在一个隐藏的输入中,以便在JavaScript中使用: <input id="loadTime" type="hidden" value="<?php echo time(); ?>"> 与其用JavaScript请求传递初始加载时间,不如存储并发送您在前一组5中收到的最后一篇文章的ID 然后,服务器端逻辑可以(在事务中)读出用户看到的

页面加载时,从数据库中选择5项。当用户向下滚动时,又会加载5篇文章,以此类推

为了防止按“new”排序时出现重复帖子,我将页面加载时间放在一个隐藏的输入中,以便在JavaScript中使用:

<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。这不是一个好方法。但在这里,我们被迫这样做是一个重复的问题。
:)
随时可以。快乐编码