如何以这种方式在javascript / jquery中动态创建div

时间:2011-02-05 07:34:02

标签: javascript jquery

我有asp.net mvc 2应用程序,我有一个场景如下: 我想创建父div,在侧面它想要用controls.like

创建n个div
    for(j=0;j<parentCount;j++)
    {
    //Create the parent div
      for(i=0;i<childDivCount;i++)
    {
    //create child div, with controls (like radio,checkboxes).and attach to parentDiv
    }
//Attach parent div to document.
    }

如何实现这一目标。

编辑: 我对答案感到满意。但是当我在每个循环中使用getJson时:

  //$.getJSON(url1,,function(data1){
    //for each item in data1 :-
         for(j=0;j<parentCount;j++)
              {
                  //Create the parent div 
                  //$.getJSON(url2,,function(data2){
//**** here j automatically get j++ , why ? ****//
                  //For each item in data2 :-
                  for(i=0;i<childDivCount;i++)
                 {
                     //create child div, with controls (like radio,checkboxes).and attach to     parentDiv
                  }

               });
            //Attach parent div to document.
                }
        });

当输入data2(subloop)的getJson时,var j会自动递增。为什么那应该?

编辑: - 事实上,我想创建问答环境。因为在第一次getJson调用我得到所有问题然后在sub getJson调用我得到每个问题的答案。对于每个问题,我创建div作为父div,并为其答案附加父div与答案子div。就这样。我不想在这里使用用户控件,所以我使用json-jquery组合来生成场景。这就是我想要实现的目标。

2 个答案:

答案 0 :(得分:2)

这应该这样做:)。

for (j=0;j<parentCount;j++)
{
  parentDiv = $('<div />');

  for (i=0;i<childDivCount;i++)
  {
    childDiv = $('<div />');
    parentDiv.append(childDiv);
  }

  someElementInDocument.append(parentDiv);
}

答案 1 :(得分:1)

这样的事情应该可以解决问题(没有尝试过,但它应该是正确的)。

for(j=0;j<parentCount;j++)
{
    //Create the parent div
    $('body').append('<div id="parent-div">');
    for(i=0;i<childDivCount;i++)
    {
        //create child div, with controls (like radio,checkboxes).and attach to parentDiv
         $('#parent-div').append('<select>...</select>');
    }
}