jQuery:将 Xml Node 设置为 DOM 元素



Response 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());

如果这不是正确的做法,那么我应该怎么做?

我不认为这是在页面中存储xml字符串的最佳方法。但是,为了使代码正常工作,您需要将 xml 字符串转换为"简单"字符串,例如使用转义序列"<"更改每个"<"字符:

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

读回字符串时,可以将转义序列"<"更改回字符"<":

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

这是一个工作示例:http://jsfiddle.net/RX6Mm/

最新更新