2015-04-30 195 views
0

我想獲取名稱爲「id」的項目的所有值,並將這些值附加到div以用於未來目的。獲取基於jquery屬性的xml值

我有下面的XML:

Pastebin link

,這是我的jQuery:

$.ajax({ 
    url: "http://test.be/", 
    type: "POST", 
    dataType: "xml", 
    data: soapMessage2, 
    crossDomain: true, 
    contentType: "text/xml; charset=\"UTF-8\"", 
    success: function(xml) { 
     $(xml).find('item[name="id"]').each(function() { 
      var libr = $(this).text(); 
      $('#lib').append('<a href="#">' + libr + '</a>'); 
     }); 
    } 
}); 

我似乎無法找出爲什麼沒有被添加到div。任何幫助,將不勝感激。提前致謝。

+1

您的代碼看起來不錯。您確定檢索XML的AJAX請求是否正常工作,並且它正在重新調整您期望的內容? –

+1

控制檯中是否有任何錯誤 –

+0

AJAX請求能夠正常工作,並且我的控制檯中沒有任何錯誤。奇怪的是,如果我使用以下方法檢索單個值:var id = xml.getElementsByTagName(「value」)[4] .childNodes [0]。的nodeValue;該ID是因爲它應該返回,我不能使用這個的原因是有多個ID需要返回,但由於某種原因,它似乎並沒有工作。 – brasay

回答

0

我固定使用以下代碼的問題:

$(xml).find('key').each(function() { 
    if($(this).text().toLowerCase() === "id"){ 
     // var libr = $(this).closest("item").find("value").text(); 
     var libr = $(this).next().text(); //alternate method for acessing      
     $('#lib').append('<p><a href="#">' + libr + '</a></p>'); 
    } 
0

我試過你的代碼,它的工作完美!

我看到的唯一的東西是你在$(document).ready()的範圍內的代碼嗎?

工作

<html> 
     <head> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
      var xml=<your xml> 


       $(xml).find('item[name="id"]').each(function() { 
       var libr = $(this).text(); 
       $('#lib').append('<a href="#">'+libr+'</a>'); 
       }); 
      }); 
     </script> 

     </head> 
     <body> 
     <div>should see 16: <span id='lib'></span></div> 

     </body> 
    </html> 

應該可以看到16:16

不起作用

<html> 
     <head> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
     <script type="text/javascript"> 

      var xml=<your xml> 


       $(xml).find('item[name="id"]').each(function() { 
       var libr = $(this).text(); 
       $('#lib').append('<a href="#">'+libr+'</a>'); 
       }); 

     </script> 

     </head> 
     <body> 
     <div>should see 16: <span id='lib'></span></div> 

     </body> 
    </html> 

應該可以看到16:

+0

嗨,我試過這個,但它不起作用,我的jquery文件存在多個soap調用: 登錄 - > auth令牌被檢索以驗證用戶,並且在此方法中,當它成功時,調用libraryretrieve方法。 顯示庫 - >使用身份驗證令牌作爲參數來顯示該用戶的所有庫,我不明白爲什麼xml.find不起作用,當我只是給'item'作爲參數時,它給出了所有的值所有的項目,但我似乎無法給在搜索中的屬性 – brasay

+0

你可以記錄查找的結果? console.log(libr); – ArmandDu

+0

ajax函數完成後控制檯不會說任何東西。 – brasay

0

的代碼爲我工作。 我沒有從控制檯收到任何錯誤。

更多關於這個東西在這裏var id = xml.getElementsByTagName(「value」)[4] .childNodes [0] .nodeValue;

FYI你需要訓練你的meKanix,

┏( - - )┛┗( - - )┓┗( - - )┛┏( - - )┏( - - )┓ ┏( - - )┛┗( - - )┓┗( - - )┛┏( - - )┓┏( - - )┛┗( - - )┓┗( - - )┛┏ ( - - )┓┏( - - )┛┗( - - )┓┗( - - )┛┏( - - )┓┏( - - )┛┗( - - )┓┗( - - )┛┏(-_-)┓

+0

你應該將答案侷限於回答 –