簡體   English   中英

如何使用 Javascript 檢查頁面中的元素是否已存在?

[英]How to check if elements in a page already exist using Javascript?

我正在使用 flask socketio 構建一個聊天應用程序。 所以我正在嘗試實現聊天歷史記錄,但我遇到的問題是,每當新用戶連接時,應用程序都會將聊天歷史記錄發送給新用戶以及舊用戶,從而導致舊用戶重復聊天記錄用戶。 我已經嘗試了所有服務器端,但我認為唯一的方法是通過 Javascript 客戶端。 有沒有什么辦法可以讓 Javascript 獲取聊天記錄時,我可以讓 JS 先檢查頁面上是否不存在該消息,然后再檢查 append 嗎?

這是正在發生的事情的屏幕截圖。 正在發生的事情的視覺表示

代碼(客戶端Javascript)

  const socket = io.connect("http://127.0.0.1:5000");

socket.on('connect', function() {

  socket.emit('sync_messages', {
    dname: "{{dname}}"
  });

});

代碼(服務器端Flask Socketio)

@socketio.on('sync_messages')
def handle_sync(data):
        socketio.emit('show_all_messages', messages)

代碼(又是客戶端)

socket.on('show_all_messages', function(data) {
 // console.log(data);
  len = data.length;
  for (i = 0; i < len; i++) {
    const newNode = document.createElement('div');
    newNode.innerHTML = data[i];
    document.getElementById('messages').appendChild(newNode);
  }

})

真的很簡單。 您可以為需要查找和執行的元素提供任何類型的屬性

function checkElement(){
   if(document.querySelector(/*Selector*/)){
      return true;
   }
   else{return false;}
}

然后只需在需要時調用此 function。 if 語句中的 document.querySelector 將自動查找您是否存在 html 元素

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM