我在“数据”中获取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 +“'”)隐藏();这是正确的方法吗?它给了我错误
答案 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();
稍微偏离主题,我也不太热衷于在按钮的名称属性中使用单引号的方式,但我不认为这与此相关。