jQuery: установить Xml Node в элемент DOM

0

Ответ XML

<Response>
<ClientDetail>
  <FirstName>a</<FirstName>
  <LastName>a</LastName>
  <Status>Off</Status>
  <City>a</City>
  <ZipCode>12346</ZipCode>
  ............
</ClientDetail>
<ClientDetail>
  <FirstName>b</<FirstName>
  <LastName>b</LastName>
  <Status>Off</Status>
  <City>b</City>
  <ZipCode>321546</ZipCode>
  ........
</ClientDetail>
</Response>

Анализ ответа

$($.parseXML(response)).find("ClientDetail").each(function(){
            var respRow='<tr>'+
                '<td class="ClientName">'+$(this).find('LastName').text()+', '+ $(this).find('FirstName').text()+
            '</td><td class="ClientStatus">'+$(this).find('Status').text()+
            '</td><td class="DateOfBirth">'+$(this).find('BirthDate').text()+
            '</td><td class="searchData" style="display:none;">'+this+'</td>';
            $('#clientSearchResult > tbody:last').append(respRow);
        });

Установка XML в скрытый <td>

<td class="searchData" style="display:none;">'+this+'</td>'

Чтение

  var searchData = $(row).find('.searchData').data();
  alert($(searchData ).find('Status').text());

Если это не правильный способ, то как мне это сделать?

Теги:

1 ответ

0
Лучший ответ

Я не думаю, что это лучший способ сохранить строку xml на странице. Однако, чтобы заставить ваш код работать, вам нужно преобразовать строку xml в "простую" строку, например, сменив каждый символ "<" на escape-последовательность "<":

$('#clientSearchResult > tbody:last').append(respRow.replace(/</g,'&lt;'));

Когда вы читаете строку назад, вы можете изменить escape-последовательность "<" назад на символ "<":

var searchData = $('#clientSearchResult > tbody:last').text().trim().replace(/&lt;/g,'<');

Это рабочий пример: http://jsfiddle.net/RX6Mm/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню