2013-05-08 142 views
-1

我正在将“数据”中的json传递给for循环。点击购买按钮,它会转到App功能。成功时,我需要隐藏购买按钮并显示下载标签。隐藏在foreach循环中

我的问题是第一个购买按钮onclick,两个按钮的下载链接出现。 理想情况下,一键购买按钮,应该隐藏购买按钮,并出现下载标签。同样单击第二个购买按钮,应该隐藏购买按钮,并出现下载标签。

如何获得每个按钮的特定ID,以便我可以一次隐藏一个按钮?

请帮我

function (data) 
    { 
     var Class =''; 
     for (var i=0; i <data.length;i++) 
     { 
      Class += '<div name="buy\''+data[i].id+'\'" class="btn btn-primary btn-small" onclick="buy(\''+data[i].identifier+'\',\''+data[i].id+'\',\''+data[i].url +'\'); return false;" href=""></div><div class="download\''+data[i].id+'\'" id="download">D<span style="font-size:15px"></span></div>'; 
     } 
     return Class; 
    } 


App = function(identifier, app_id, url) { 
    $.ajaxSetup({ 
      data : { 
       csrf_test_name : $.cookie('csrf_cookie_name') 
      } 
     }); 
     var jqxhr = $.post(SITE_URL + 'admin/appstore/purchaseApp', { 
      identifier : identifier, 
      ap_id : ap_id 
     }).done(function(data1) { 
      obj = JSON.parse(data1); 
      bootbox.alert(obj.status, obj.label); 
      $("#download").html('<a href='+download_url+app_id+'>Download!</a>'); 




     }); 
    }; 

它是为循环正在使用..想过去“;现在我该如何隐藏购买ID? $( “#购买” + “ ' ”+数据[I] .ID +“'”)隐藏();这是正确的方式吗?它给我错误

+1

forEach循环在哪里? – Xotic750 2013-05-08 11:33:58

+0

对不起,它是用于正在使用的回路。 正在通过

'; 现在我该如何隐藏购买ID? $(“#buys”+“'”+ data [i] .id +“'”)。hide(); 这是正确的方法吗?它给了我错误 – user1734770 2013-05-08 11:40:36

+0

你正在得到什么错误? – Xotic750 2013-05-08 11:52:02

回答

0

如果你看看在Class中生成的实际标记,你会看到你的购买按钮根本没有id。也许类似于

Class += '<div id="buy-button-'+data[i].id+'" name="... 

现在,您在每个按钮上都有一个唯一的ID。问题的下一部分是知道在成功调用Ajax之后要删除哪个按钮。您需要将其包含在从服务器返回的data1中。为了说明起见,让我们假设服务器将您的data1对象中的值返回为app_id。然后,所有你需要做的是

jQuery('#buy-button-'+data1.app_id).hide(); 

稍微题外话,我不是你所使用的按钮单引号name属性,无论是方式过于激烈,但我不认为这是这里有关。