2016-01-03 3 views
0

У меня есть диалоговое окно функции на приложение Делаю сообщения выводятся в HTML дивы, как это:Проверьте содержимое DIV, чтобы увидеть, если он соответствует - JS

<div class="chat-message error">Message example here</div> 
<div class="chat-message error">Message example here</div> 
<div class="chat-message error">Latest message</div> 

Я хочу, чтобы проверить последнее сообщение в javascript и посмотреть, совпадает ли он с предыдущим, если он ничего не делает, если не запускает мой существующий код диалога. Новые сообщения чата хранятся в переменной с именем chatBoxMessage.

Я думаю, что мне нужно что-то вроде этого -

oldMsg = $('.chat-message').html(); 
if (oldMsg == chatBoxMessage) { 
    //do nothing 
} else { 
    dialog code 
} 
+0

Вы забыли период, чтобы обозначить класс, это '$ (». Чат-сообщение ') ' – adeneo

+0

есть также' .text() 'в jquery – Bek

+0

Я пропустил период своей ошибки, но он не получает последнее сообщение в dom только первым. – SamXronn

ответ

2

Вы можете использовать JQuery последний метод:

oldMsg = $('.chat-message').last().html(); 
+0

Удивительная благодарность! Я делал .last.html() глупо меня !! – SamXronn

0

вы можете использовать JQuery last и prev

var lastMessage = $('.chat-message').last(); 
var previousMessage = lastMessage.prev(); 

console.log(lastMessage.text() === previousMessage.text()); 
0

Ваш oldMsg переменная содержит массив всех элементов с классом chat-message. Поэтому лучше значимое имя для этой переменной должно быть chatMsgs

var chatMsgs = $('.chat-message'); 
var msgsLen = chatMsgs.length; 

Теперь ваш oldMsg будет.

var oldMsg = chatMsgs[msgsLen - 1].text(); // Remember array indexes are zero based 

Или, если вы думаете, что это слишком много манипуляций массива можно использовать более простой метод last() JQuery (Как отметил @Shai). То, что он делает, возвращает последний элемент из массива элементов. Так,

var oldMsg = $('.chat-message').last().text(); 

теперь счастливо сделать ваш кондиционер ..

if (oldMsg === chatBoxMessage) { 
    // do nothing 
} 
else { 
    // dialog code 
} 
+2

Один кодовый блок не дает хорошего ответа. Пожалуйста, добавьте объяснения (почему он решает проблему, где была ошибка и т. Д.) –

+0

@LouisBarranqueiro Спасибо, что указали это! Приходилось. –

Смежные вопросы