2016-07-12 6 views
-1

У меня есть this structureОшибка при получении .last()

Я хочу, чтобы получить последнее сообщение, им пытаются использовать .last функцию():

$('#user-chat-' + data.de).find('#load-msgs').last().html() 

Но JQuery возвращает все результаты внутри div, а не последний результат. Кто-то знает, почему я получаю эту ошибку? (Селектор прав, я получаю результат, но я не получаю последнее) Спасибо!

+1

Ваша скрипка, кажется, не отображает весь код –

+0

** Получить последний 'div' **' $ ('# user-chat-' + data.de) .find ('# load-msgs div'). last(). html() ' – Tushar

+2

Добро пожаловать в переполнение стека! Полное содержание вашего вопроса должно быть ** в ** вашем вопросе, а не только связано. Ссылки гниль, что делает вопрос и его ответы бесполезными для людей в будущем, и людям не нужно уходить с сайта, чтобы помочь вам. Положите [mcve] ** в ** вопрос, в идеале используя Stack Snippets (кнопка панели инструментов <> '), чтобы сделать его выполнимым. Подробнее: [* Как я могу задать хороший вопрос? *) (/ Help/how-to-ask) –

ответ

1
$(document).ready(function(){ 

      $("#load-msgs").last().find('div span').html() 

//OR 
      $("#load-msgs div span").last().html()  
    }) 

Здесь работает fiddle

HTML, из вашего сценария:

<div class="row" id="load-msgs"> 
    <div class="col-md-10 col-sm-12 col-xs-12 "> 
     <span class="message-box message-other" data-toggle="tooltip" data-placement="right" title="18:28"> 
     lewpwa </span> 
    </div> 


    <div class="col-md-10 col-sm-12 col-xs-12 "> 
     <span class="message-box message-other" data-toggle="tooltip" data-placement="right" title="18:28"> 
     oppa </span> 
    </div> 


    <div class="col-md-10 col-sm-12 col-xs-12 "> 
     <span class="message-box message-other" data-toggle="tooltip" data-placement="right" title="18:36"> 
     oppa </span> 
    </div> 


    <div class="col-md-10 col-sm-12 col-xs-12 "> 
     <span class="message-box message-other" data-toggle="tooltip" data-placement="right" title="18:36"> 
     oppa </span> 
    </div></div> 
0

find('#load-msgs') будет использовать только целевой элемент с идентификатором load-msgs. Вам нужно будет настроить немедленные дочерние div внутри элемента #load-msgs, а затем использовать последний селектор или метод для возвращаемого набора div.

также как идентификаторы уникальны, вам не нужен переключатель #user-chat, а затем найдите в нем элемент. Вы можете непосредственно получить элемент, используя селектор ID #load-msgs:

$('#load-msgs > div').last().html() 
0

Попробуйте это:

$('#user-chat-' + data.de).find('#load-msgs').children('div').last().html(); 
1

find('#load-msgs').last() - возвращает последний элемент коллекции элементов с ID load-msgs который является недействительным /абсурдным/ненужными. Вам нужны дети.

Использование,

find('#load-msgs div').last() 

или

find('#load-msgs').children().last() 
+0

_which invalid_, It _is_ valid – Tushar

+0

Это действительно ... это просто лишний или ненужный, но он действителен – DaniP

+0

@Tushar, по недопустимому я имел в виду, ненужное, так как несколько элементов с одинаковым идентификатором являются недопустимыми разметками., Подчеркнул мой ответ. –

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