Ответ JQuery AJAX является HTML, но не может манипулировать им - PullRequest
0 голосов
/ 03 мая 2011

Я в основном пытаюсь работать с ответом сервера, отправленным в html.Я хотел бы подсчитать количество элементов, присутствующих во фрагменте DOM, отправленном обратно сервером.Тем не менее, когда я делаю:

  $.ajax({
    url: '/myAjaxUrl',
    type: "POST",
    data : params,
    dataType: 'html',
    success: function(data){
        var total = $(data).find('li').length;
        console.log(total);
    }
  });

моя общая сумма равна 0. Firefbug отображает правильный HTML, и фрагмент DOES содержит <li/> элементов.Где я не прав?Oo ??

Вот отправленные заголовки ответа:

Date    Tue, 03 May 2011 12:52:55 GMT
Server  Apache/2.0.64 (Unix) PHP/5.3.5 DAV/2
X-Powered-By    PHP/5.3.5 
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma  no-cache 
X-Robots-Tag    noindex,nofollow
Keep-Alive  timeout=15, max=99
Connection  Keep-Alive
Transfer-Encoding   chunked
Content-Type    text/html

И часть ответа HTML:

<li >
    <div class="">
        <a class="lookVisu" href="" rel="noindex,nofollow">
            [...]
</li>

1 Ответ

4 голосов
/ 03 мая 2011

.find ищет потомков элементов в вашем наборе.

Ваш HTML, вероятно, имеет <li> элементов в качестве верхнего уровня, поэтому .find не найдет их.

Если это так, вы можете использовать .filter, который ищет сами элементы, а не их потомков.

Кроме того, вы можете заключить HTML в элемент-заглушку, чтобы превратить все элементы в потомков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...