У меня есть следующая функция getItemID
, она ищет все ID под определенным родительским ID (#search-output)
. Если идентификатор (#test)
был загружен при загрузке страницы, getItemID
находит идентификатор без проблем..map найти элементы после загрузки через AJAX
Однако я на самом деле строить эти идентификаторы (#test)
в режиме реального времени с помощью AJAX, так что моя функция getItemID
должна быть в состоянии найти эти идентификаторы (#test)
, которые загружаются через AJAX.
Я думаю, что проблема здесь .map(function(){})
внутри getItemID
не может найти элементы, добавленные в DOM после загрузки страницы. Мне нужен способ для этого .map
, чтобы найти все элементы независимо от того, когда они были загружены.
Это работает: HTML:
<div id="search-output">
<div id="test"></div>
</div>
Это не работает: HTML: функция
<div id="search-output">
</div>
JavaScript getItemID:
function getItemID(){
var ID = $('#search-output [id]').map(function(){
return this.id;
}).get();
if(ID.length == 0){
return null;
}else{
return ID;
}
}
JavaScript AJAX, которая возвращает HTML:
$.ajax({
url:'lib/search-server.php',
type:'POST',
data: {
search: "*"
},
dataType:'json',
success: function(data){
/* data[0] contains "<div id="test"></div>" */
$('#search-output').append(data[0]);
}
});
вам нужно вызвать функцию после вызова Ajax вы делаете, что ... если 'метод getItemID' выполняется до вызова Ajax завершен нет элементов под' поисково-output' так ничего не будет будет возвращен –
@ArunPJohny, О, ничего себе, это ошибка новобранец! Благодаря! Должен ли я закрыть или вы хотите включить это в качестве ответа? – Joseph