jquery traverse html результат $ .get (url, function (data) { - PullRequest
4 голосов
/ 10 января 2010

Мне интересно, каков правильный синтаксис для обхода данных, возвращаемых этой функцией:

$.get(url, function(data){
            alert(data);
        });

data.find ("таблица") или аналогичный не работает. Возвращенные HTML-данные выглядят следующим образом, проанализированные из шаблона django:

<div class="pagination"> 
        <span class="step-links"> 

            <span style="visibility:hidden;">previous</span> 
            <span class="current"> 
                    Page 1 of 2.
            </span> 
            <a id="next" href="?page=2">next</a>  
        </span> 
    </div> 

        <form class="" id="action-selecter" action="" method="POST"> 
        <div class="action_dropdown"> 
            <label>Action: <select name="action"> 
                <option value="" selected="selected">---------</option> 
                <option value="new_selection">Add to new selection</option> 
                <option value="delete_selected">Delete selected projects</option> 
            </select></label> 
            <button type="submit" class="button" title="Run the selected action" name="index" value="1">Go</button> 
        </div> 

        <div id="ajax_table_result"> 
            <table cellspacing="5"> 
                ...
                </thead> 
                    <tbody> 
                     ...

                    </tbody> 
            </table> 
        </div> 
    </form> 

Ответы [ 4 ]

8 голосов
/ 10 января 2010

Не забудьте обернуть свои результаты в оболочку jQuery, чтобы использовать против нее методы jQuery.

$.get("script.php", {foo:"bar"}, function(results){
  var table = $("table", results);
  /* from comments: how to get span.step-links */
  var spans = $("span.step-links", results);
}, "html");
1 голос
/ 10 января 2010

Переменная data - это просто строка, содержащая html. Я думаю, что если вы просто включите его в $(data).find('table'), то jquery будет html анализировать строку и превращать ее в элементы купола.

1 голос
/ 10 января 2010

Я думаю, что вы хотите

$(data).find("table");

data - это строка, но $(data) - это DOM. Смотри http://docs.jquery.com/Core/jQuery#htmlownerDocument.

0 голосов
/ 10 января 2010
$.get("url", function(data){
  var table = $(data).find("table");
  if ($(table).length>0)
    alert("ok");
  else
    alert("error");
}, "html");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...