用jQuery创建新的div?

时间:2012-06-20 17:32:55

标签: javascript onclick

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

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

所以这会增加一个div,但问题是新的div总是会有一个'member7'的id。如何在下次单击按钮时,下一个新div是member8,然后是member9等?

5 个答案:

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

获取具有“成员”类的div的总数,然后在DIV id中执行+1。

答案 1 :(得分:2)

很简单:

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

答案 2 :(得分:2)

这不是一个真正的jQuery问题;你只需要addSlot方法之外的计数器:

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

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

答案 3 :(得分:1)

这将在函数本身内缓存计数,无论调用上下文如何,而不是将计数分配给全局变量。

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

答案 4 :(得分:1)

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