-1

我在“数据”中获取 json 并将其传递给 for 循环。Onclick 购买按钮,它转到 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>');




        });
    };

这是for循环正在使用..正在传递'; 现在我如何隐藏购买ID?$("#buys"+"'"+data[i].id+"'").hide(); 这是正确的方法吗?它给了我错误

4

1 回答 1

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();

有点题外话,我也不太喜欢在按钮的名称属性中使用单引号的方式,但我认为这与这里无关。

于 2013-05-10T01:55:24.230 回答