javascript - 如何获取我的页面上每个帖子的 id?

标签 javascript php ajax

我正在尝试在 js 中发送帖子 ID。我可以发送第一个帖子 ID,但如何发送每个帖子的 ID。检查元素看起来像这样

<div  data-id="post_1"></div>
<div  data-id="post_2"></div>
<div  data-id="post_3"></div>


<script type="text/javascript" >
 function ajax(){

    var req = new XMLHttpRequest();

    req.onreadystatechange = function(){

    if(req.readyState == 4 && req.status == 200){

    document.querySelector('[data-id=post_1]').innerHTML = req.responseText;
    } 
    }
    req.open('GET','chat.php?id=1>',true); 
    req.send();

    }
    setInterval(function(){ajax()},1000);


</script>   

这是代码

<div  data-id="post_<?php echo $post_id;?>"></div>



<script type="text/javascript" >
 function ajax(){

    var req = new XMLHttpRequest();

    req.onreadystatechange = function(){

    if(req.readyState == 4 && req.status == 200){

    document.querySelector('[data-id=post_<?=$post_id?>]').innerHTML = req.responseText;
    } 
    }
    req.open('GET','chat.php?id=<?=$post_id?>',true); 
    req.send();

    }
    setInterval(function(){ajax()},1000);


</script>    

所有帖子都在同一页面上。但我只能获取一篇帖子的 id。如何在js中获取id post_2post_3

js 显示每个帖子的评论。只有第一篇文章显示评论,因为 js 只获取第一篇文章的 id。其余的没有显示任何东西。

我怎样才能对每个帖子做同样的事情?

最佳答案

querySelector 永远不会为您提供超过 1 个元素。如果您需要满足查询的所有元素,请使用 querySelectorAll

JS 代码中使用 PHP 意味着它只会使用 1 个 post_id

最简单的方法是向您的 div 添加一个 class 或其他data-attribute:

<div data-type="post" data-id="1">a</div>
<div data-type="post" data-id="3">b</div>
<div data-type="post" data-id="2">c</div>

您可以使用新的属性来获取所有它们并迭代它们。

var elements = document.querySelectorAll('[data-type="post"]')
for (var i = 0; i < elements.length; i++) {
  var postId = elements[i].getAttribute('data-id')
  // do ajax stuff
  // ... then
  elements[i].innerHTML = 'ajax response'
}

https://jsfiddle.net/w6kazkm1/4/

编辑:误解了你的问题。答案现已更新。

关于javascript - 如何获取我的页面上每个帖子的 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44003494/

相关文章:

javascript - 仅在特定部分启动 javascript 函数

php - 根据 Woocommerce 中的特定用户角色显示菜单项

php - 重写 url 以删除问号并在 htaccess 中添加斜线

javascript - 使用 jQuery 重新加载特定元素

javascript - Div 未正确调整大小

javascript - firebug:如何在 firebug 控制台发送 POST 数据?

Javascript函数问题

php - 越南字符的正则表达式

javascript - 在任何地方使用 JavaScript 变量

Ajax 内容索引,谷歌