jQuery方法返回两个字段相等的XML对象?

时间:2009-08-13 12:29:10

标签: jquery xml

我以XML格式从服务器获取数据。数据如下:

<items>
   <item>
       <field1>10</field1>
       <field2>11</field2>
       <field3>12</field3>
   </item>
   <item>
       <field1>10</field1>
       <field2>11</field2>
       <field3>11</field3>
   </item>
</items>

有没有办法编写一个jQuery语句来只返回field2等于field3的XML对象?我目前使用jQuery过滤符合特定条件的xml对象(使用jQuery findcontains,例如$("field2:contains(11)"))但我无法提出过滤xml的语句xml字段是相等的。我总是可以将XML转换为javascript数组并查找相等的字段,然后将javascript数组作为jQuery对象返回。似乎应该有一种方法来使用jQuery语句。

1 个答案:

答案 0 :(得分:0)

试试这个:

var xmlData = $('<items>.........');
xmlData.find('item').each(function ()  {
     if($(this).find('field2').text() == $(this).find('field3').text()) {
         alert('Field 2 and Field 3 are equal');
         $(this).find('field3').remove(); //for example, to remove the dupe
     }
});
//then convert it back to a string
//for IE 
if (window.ActiveXObject) {
    var string = xmlData.xml;
    alert(string);
 }
// code for Mozilla, Firefox, Opera, etc.
else {
   var string = (new XMLSerializer()).serializeToString(xmlData);
   alert(string);
}