2014-12-29 39 views
1

您好,我正在尝试从魔兽世界中提取角色标题,但我没有收到任何返回的结果。我的代码如下,我的人物名称被替换为我的实际人物名称。WoW Armory APi - 无法获得标题

HTML

<li>Title Prefix: <span id="title">Test</span> 

的Javascript

$(window).load(function getSite(){ 
      $.ajax({     
       url: "http://eu.battle.net/api/wow/character/server/character?fields=titles&jsonp=GoGet", 
       type: 'GET', 
       dataType: 'jsonp', 
       }); 
      } 

     ); 

     function GoGet(data) { 


      $("#title").html(data.titles.name)    
     ;} 

的API文档显示 “标题” json的项目如下:

{ 
"achievementPoints": 675, 
"battlegroup": "Test Battlegroup", 
"calcClass": "f", 
"class": 10, 
"gender": 1, 
"lastModified": 1348187981118, 
"level": 90, 
"name": "Peratryn", 
"race": 25, 
"realm": "Test Realm", 
"thumbnail": "test-realm/1/1-avatar.jpg", 
"titles": [ 
    { 
    "id": 285, 
    "name": "%s, Savior of Azeroth", 
    "selected": true 
    } 
    ] 
} 

我要去哪里错了?

+0

你从服务器回来了什么? –

+0

完整的标题列表以及我选择的标题,我无法让我的代码吐出来。 – Yanayaya

+1

'titles'看起来像一个数组。 –

回答

3

并非是一个WOW玩家自己,我斗胆猜测:

 $(window).load(function getSite(){ 
      $.ajax({     
       url: "http://eu.battle.net/api/wow/character/server/character?fields=titles&jsonp=GoGet", 
       type: 'GET', 
       dataType: 'jsonp', 
       success: UpdateTitle 
       }); 
      } 

     ); 

     function UpdateTitle(response) { 
      if (response.titles) { 
       for (var i = 0; i < response.titles.length; i++) { 
        if (response.titles[i].selected === true) { 
         $("#title").html(response.titles[i].name); 
         break; 
        } 
       } 
      }     
     } 

这是什么东西做的从你提供的URL成功XHR响应后调用UpdateTitle。该函数将遍历每个标题,并使用json响应中的FIRST selected: true标题更新#title元素。

+0

哈,好电话。更新以包括索引0.显然Yanayaya可以做更聪明的事情,使用列表,检查数据等。 –

+0

感谢这个作品,如果你知道你想要选择的标题,你只需更改值,但我需要选择标题被选中,这可以通过访问“selected:true”资源来完成吗? – Yanayaya

+0

更新后检查选定的属性。 –