Javascript / jQuery - Parse вернул «данные» в виде HTML для дальнейшего выбора? - PullRequest
4 голосов
/ 23 июня 2009

веб-сервис возвращает мне некоторые данные. На самом деле данные - это просто необработанный HTML (поэтому нет заголовка XML или тегов вокруг него, а всего лишь кусок html).

<div class="Workorders">
    <div id="woo_9142" class="Workorder">
        <span class="Workorder">S1005</span>
        <span class="Pn">30-2</span>
        <span class="Description">Cooling Fan</span>
        <span class="Shortages">3616-1 (SV)</span>
        <span class="Company">xxx</span>
    </div>
    <div id="woo_9143" class="Workorder">
        <span class="Workorder">S1006</span>
        <span class="Pn">30-2</span>
        <span class="Description">Cooling Fan</span>
        <span class="Shortages">3616-1 (SV)</span>
        <span class="Company">xxx</span>
    </div>
</div>

Если бы это был XML, например, так:

<workorders>
    <workorder id="woo_9142">
        <partnumber>30-2</partnumber>
    </workorder>
</workorders>

Я мог бы пойти так в jQuery:

$('/workorders/workorder', data).each(function() {
    //This would give every partnumber $('partnumber', this).text();
});

Как я могу разобрать возвращенный HTML (как описано в начале)?

myNamespace.onSuccess = function(request) {
    //request contains the raw html string returned from the server

    //How can I make this possible:
    $(request).find('div.Workorders div.Workorder').each(function() {
       //Do something with the Workorder DIV in 'this'
    });
}

Ответы [ 3 ]

7 голосов
/ 23 июня 2009

что-то вроде

myNamespace.onSuccess = function(request) {    
    $(request.responseText).filter('div.Workorder').each(function() {
       $('span.Pn', $(this)).text();
    });
}
1 голос
/ 23 июня 2009

Вы пытались добавить html в dom, скрыть его и затем обработать:

myNamespace.onSuccess = function(request) {
    var hidden = document.createElement ( 'div' );
    hidden.id = 'hiddenel';
    $("body").append ( hidden );
    $("#hiddenel").css ( 'visibility', 'hidden' );
    $("#hiddenel").html ( resp );
    $("#hiddenel").find ( 'div.Workorders div.Workorder').each(function() {
    .....
    });
}
0 голосов
/ 23 июня 2009

Вы можете явно указать ожидаемый тип возвращаемого значения: http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests

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