2012-06-20 37 views
0

我的页面中有这六个静态div,我想创建一个按钮来更新一个变量并在页面中添加一个新的div。这是我到目前为止有:用jQuery创建新的div?

function addSlot(){ 
    maxChecks = maxChecks+1; 
    $("#list").append("<div id ='member7' class='member'></div>"); 
} 

因此,这增加了一个div,但问题是,新的div总是要具有“member7”的ID。我怎样才能让下一次按钮被点击,下一个新的div是member8,然后是member9等?

+0

是在函数范围内定义maxchecks?它可以用来增加身份证号码吗? 'div id ='member'+ maxChecks' – mrtsherman

+0

http://www.codecademy.com – srijan

回答

3

使用此:

function addSlot(){ 
    maxChecks = maxChecks+1; 
    var count = jQuery('.member').length; 
    var div_id = count + 1; 
    $("#list").append("<div id ='member" + div_id + "' class='member'></div>"); 
} 

获取其格班 '成员' 的总数,然后做+1的DIV ID。

2

很简单:

function addSlot(i){ 
    maxChecks = maxChecks+1; 
    $("#list").append("<div id ='member" + i + "' class='member'></div>"); 
} 
2

这是不是一个真正的jQuery的问题;你只需要addSlot方法外的柜台:

var counter = 1; 
function addSlot(){ 
    maxChecks = maxChecks+1; 
    $("#list").append("<div id ='member" + (counter++) + "' class='member'></div>"); 
} 

显然,这是不这样做的唯一途径。例如,请参阅Nishu's answer,如果您希望ID始终与成员div的数量一致。

1

无论调用上下文,它都会在函数本身中缓存计数,而不是将计数分配给全局变量。

function addSlot(){ 
    var count = (addSlot.count || 0) + 1; 
    $("#list").append("<div id='member" + count + "' class='member'></div>"); 
    addSlot.count = count; 
} 
1

function addSlot(){ 
    maxChecks = maxChecks+1; 
    $("#list").append("<div id ='member" + ($('.member').length + 1) + "' class='member'></div>"); 
} 
+1

可能希望将'$('。member')。length'检查范围限制为'#list .member',以防万一班级在其他地方使用。 –

+0

好点 - 谢谢 –