2012-07-09 72 views
3

我正在创建一项服务,允许您创建团队或基于用户的挑战。使用HTML 5规范来设计页面,我遇到了一个附加到位于另一个页面的下拉列表的问题。整个功能位于两页内,主要通过对其他页面进行AJAX调用。有一个小函数可以将一个团队的两个属性添加到下拉列表中,但我似乎无法使其正常工作。如何追加到另一页上的选择下拉菜单?

代码:

var teams = $.parseJSON(getAllTeams()); 
    $('#multiPurpose').load('allTeams2.html #teamSelect'); 
    for (i = 0; i < teams.length; i++) { 
     var team = $.parseJSON(getTeam(teams[i])); 
     if (team.ownerID === userID) { 
      $(
        "<option value='" + team.teamID + "'>" + team.teamName 
          + "</option>").appendTo('#teamSelection'); 
     } 
    } 
} 

的#teamSelection包含在#teamSelect专区内。任何帮助都会很棒。

+1

愚蠢的问题:你确定#teamSelection实际上存在吗?换句话说,如果在appendTo之前执行'console.log($('#teamSelection'))',你真的看到它了吗? – machineghost 2012-07-10 00:32:27

回答

2

在.load()中添加回调函数将解决该问题。基本上,你正在告诉它在运行for循环之前加载该div中的所有内容。

$('#multiPurpose').load(
    'allTeams2.html #teamSelect', 
    function() { 
    for (i = 0; i < teams.length; i++) { 
    var team = $.parseJSON(getTeam(teams[i])); 
    if (team.ownerID === userID) { 
    $(
    "<option value='" + team.teamID + "'>" 
              + team.teamName + "</option>") 
            .appendTo('#teamSelection'); 
         } 
        } 
       });