躲在foreach循环中

时间:2013-05-08 11:06:41

标签: php javascript jquery html mysql

我在“数据”中获取json并将其传递给for循环。点击购买按钮,进入App功能。成功后我需要隐藏购买按钮并显示下载标签。

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

如何获取每个按钮的特定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 个答案:

答案 0 :(得分: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();

稍微偏离主题,我也不太热衷于在按钮的名称属性中使用单引号的方式,但我不认为这与此相关。