Обычно, «проблема» возникает с данными, получаемыми через асинхронные запросы (ajax-запрос). Вы пытаетесь выполнить jQuery.find() для полученных данных, а функция возвращает пустой объект.
В примере ниже, мы пытаемся извлечь содержимое HTML контейнера с идентификатором someID.
1 2 3 4 |
$.post(path, params, function(dt) { var code = $(dt).find("#someID").html(); if (code == undefined) { alert("Найти не удалось!"); }; } ); |
И что бы мы не делали, пока возвращаемый код dt имеет следующий вид :
1 2 3 4 |
<div>...</div> <div id="someID">Someid container <b>HTML</b></div> ... <div>...</div> |
т.е. в самом нижнем уровне HTML у нас есть несколько контейнеров, ф-ция .find не будет извлекать нужных данных. Требуется обернуть dt в единый контейнер, тогда функция .find начнет работать.
1 2 3 4 5 |
$.post(path, params, function(dt) { dt = '<div>' + dt + '</div>'; var code = $(dt).find("#someID").html(); if (code != undefined) { alert("Код получен!"); }; } ); |