2013-03-08 2 views
0

Я пытаюсь выбрать последний идентификатор бутстрапа «хорошо» в jquery.JQuery select last на загруженном содержимом ajax

Это работает, но не на загруженных скважинах ajax, см. Мою попытку ниже, любые советы?

var newest = $('.well:last').attr('id'); 
setInterval(function() { 
console.log(newest); 
    $.ajax({ 
    type: 'POST', 
    url: 'ajax/getNew.php', 
    data: "id="+newest+"&session=<?php echo $sesh; ?>", 
    cache: false, 
    success: function(html) { 
     $("#convo").append(html); 
     newest = $(html).filter('.well:last').attr('id'); 
    } 
    }); 
}, 3000); 

Вал новейший не определен после того, как новый колодец добавлен успешным результатом ajax.

+0

Зависит от значения ' html'. Возможно, вам нужно '.find' вместо' .filter'. Но вместо разбора HTML дважды вы можете просто «$ (« # convo »). Find ('. Well'). Last(). Attr ('id')'. –

+0

Предполагая, что '# convo' является div на странице, и если' html' содержит новый элемент '.well', я думаю, следует попробовать вызвать' $ ('. Well: last'). Attr ('id'); 'тоже из обработчика успеха, почему вы используете фильтр? –

+0

Действительно ли '$ (html)' действительный звонок здесь?? или должен использовать '$ (" # convo "). find ('. well: last')' лучше ... Кто-нибудь ..? – Anujith

ответ

0

Try:

newest = $("#convo").find('.well:last').prop('id'); 

Или:

newest = $("#convo").find('.well').last().prop('id'); 
0

Возможно, нет элемента корня. Вот почему это не работает. Вы можете попробовать следующий код и селектор:

rootedHtml = "<div>"+html+"</div>"; 
newest = $(rootedHtml).find('.well[id]:last'); 
var id = newest.attr(id); 

Пожалуйста, проверьте эту скрипку: http://jsfiddle.net/qyEJu/

+0

no не работает ни –

+0

Я обновил свой ответ. Повторите попытку. – Kasyx

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