2011-09-06 64 views
1

在xml文檔中,我想用jQuery檢索元素「product」的「name」屬性的不同屬性值,刪除重複項。檢索jQuery中xml文檔的不同屬性

不過,我還沒有與獨特的()函數或創建一個數組的任何成功,建議在這裏討論: How to use jQuery to select XML nodes with unique text content?

任何幫助將誠懇讚賞。 非常感謝你提前。

我的XML:

<products> 
    <product name="first"></product> 
    <product name="second"></product> 
    <product name="first"></product> 
    <product name="first"></product> 
</products> 

我不工作代碼:

function getName() { 

    $.ajax({ 
     type: "GET", 
     url: xmlFile.xml, 
     dataType: "xml", 
     success: function(xml) { 
      $(xml).find('product').each(function(){ 

         var name = $(this).attr('name'); 
         var productArray = new Array(); 
         if(jQuery.inArray(name, productArray) == -1){ 
          $('<p></p>').html(name).appendTo('body'); 
          productArray.push(name); 
         } 
      }); 
     } 
    }); 
} 

回答

5

productArray是爲產品元素的每次迭代定義的gettin,因此inArray始終返回-1。

移動productArray定義的每個循環即外:

function getName() { 
     $.ajax({ 
      type: "GET", 
      url: xmlFile.xml, 
      dataType: "xml", 
      success: function(xml) { 
         var productArray = new Array(); 
       $(xml).find('product').each(function(){ 

          var name = $(this).attr('name'); 
          if(jQuery.inArray(name, productArray) == -1){ 
           $('<p></p>').html(name).appendTo('body'); 
           productArray.push(name); 
          } 
       }); 
      } 
     }); 
    } 
+0

哇,現在它的工作!我的錯。非常感謝你,快速簡單! – bobighorus

1

這使我的頭的第一個想法......你有沒有嘗試設置你的VAR 「productArray」 全球?我的意思是,在你的「每個」功能體之外?我會懷疑每次代碼到達該點時都會重置productArray,以便它永遠不會包含重複的條目。

+0

你說得對!我愚蠢的錯誤! – bobighorus