简体   繁体   English

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

[英]How to remove all html tags except last 5?

I set a php/javascript chat for my site, the problem is that I want to show only the last 5 messages, and then the older ones after 5 must disappear. 我为我的网站设置了php / javascript聊天,问题是我只想显示最后5条消息,然后5条之后的旧消息必须消失。 These messages are entered in the pre . 这些消息在pre中输入。 How can this be done? 如何才能做到这一点? This is all the code I am using 这就是我正在使用的所有代码

    $(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: 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";
    }

You might use a nifty little css selector and then remove them on every newMessage event like this: 您可以使用一个漂亮的小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()
})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM