2015-04-30 166 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

你应该将答案局限于回答 –