На моей странице у меня есть:
function grabProfiles(searchstring) {
$.post('newsletter.php?mode=grab', { search: searchstring }, function(data) {
$('#newsletter_receivers').html(data);
});
}
$('#newsletter_searchprofiles').bind('keyup', function() {
var searchstring = this.value;
grabProfiles(searchstring);
});
$(document).ready(function() {
grabProfiles('');
});
Это выводит результат в элементе div #newsletter_receivers.Результат выглядит примерно так:
<div class="receiver">
Peter
</div>
<div class="receiver">
Maria
</div>
<script>
$(".receiver").click(function () {
$(this).toggleClass("newsletter_receiver_highlight");
});
</script>
Поэтому, когда вы нажимаете на один из приемников, они будут выделены.Это отлично работает.
Теперь я хотел бы поместить значение атрибута id получателя (выделенное значение id) в массив.А затем оповестите об этом значении массивов, когда вы нажмете кнопку отправки, которая существует под #newsletters_receivers.(не в? mode = grab, где находятся все элементы .receiver)
Я сделал так:
$('#newsletter_send').click(function(){
alert($('div.newsletter_receiver_highlight').length+' Selected');
var arr = [];
$('div.newsletter_receiver_highlight').each(function(){
arr.push(this.id);
});
alert(arr);
});
Это дает мне два оповещения.Один правильный, он дает мне количество подсвеченных.Второе предупреждение, которое должно дать мне значения, пусто!
Это работало ранее, когда я не сделал ajax-запрос для вывода элементов получателя.И я думаю, что это пусто, потому что в первый раз страница не содержит ничего в #newsletters_receivers, пока не выполнит запрос ajax.Но как тогда определить правильную длину?
Как мне исправить / сделать решение для того, чтобы это работало?
// Заключительный вопрос:
Почему каждый () не живет?и альтернативы этому методу?
пример:
$('div.newsletter_receiver_highlight').each(function(){
arr.push(this.id);
});
alert(arr);
это хранит значение для всех элементов CURRENT с классом newsletter_receiver_highlight
Если я добавляю элемент divс классом newsletter_receiver_highlight позже из ответа на запрос он не будет сохранен в массиве