如何删除除最后5个以外的所有html标签?

时间:2018-09-30 09:54:14

标签: javascript html

我为我的网站设置了一个php / javascript聊天程序,问题是我只想显示最后5条消息,然后5条之后的旧消息必须消失。这些消息是在前提中输入的。如何才能做到这一点?这就是我正在使用的所有代码

    $(document).ready(function(){ 
    cometApi.start({node:"/", dev_id:/ })

    cometApi.subscription("simplechat.newMessage", function(event){
        $("#web_chat").append('<pre><b style="font-size:15px">'+HtmlEncode(event.data.name)+'</b>: '+HtmlEncode(event.data.text)+'</pre>')
    })
})

function HtmlEncode(s)
{
  var el = document.createElement("div");
  el.innerText = el.textContent = s;
  s = el.innerHTML;
  return s;
}


function send()
{
   var name = $('#name').val();
   var text = $('#text').val();

   $.ajax({
        url: "/fileadmin/chat/chat.php",
        type: "POST", 
        data:"text="+encodeURIComponent(text)+"&name="+encodeURIComponent(name)
   });
}

PHPCODE:

 $comet = mysqli_connect($host, $user, $password, "/");

    if(mysqli_errno($comet))
    {
        echo "Error:".mysqli_error($link);
    }

    $msg = Array( "name" => $_POST["name"], "text"  => $_POST["text"] );
    $msg = json_encode($msg);
    $msg = mysqli_real_escape_string($comet, $msg);

    $query = "INSERT INTO pipes_messages (name, event, message)" .
      "VALUES('simplechat', 'newMessage', '".$msg."')";

    mysqli_query($comet, $query); 

    if(mysqli_errno($comet))
    {
        echo "Error:".mysqli_error($comet);
    } 
    else
    {
        echo "ok";
    }

1 个答案:

答案 0 :(得分:0)

您可以使用一个漂亮的小CSS选择器,然后在每个newMessage事件中将它们删除,如下所示:

cometApi.subscription("simplechat.newMessage", function(event){
    $("#web_chat").append('<pre><b style="font-size:15px">'+HtmlEncode(event.data.name)+'</b>: '+HtmlEncode(event.data.text)+'</pre>')
    $('#web_chat > pre:nth-last-child(n+6)').remove()
})