2011-03-23 15 views
0

我正在动态创建表并将动态追加到他们的行,所有通过JQuery完成,动态创建表是好的,但不将行附加到表中,这就是我的代码的样子,按钮上的onclick事件处理程序没有任何作用,我在哪里出错了?然而,如果我硬编码tableID,它似乎工作,如下所示:$(“#1 tr:last”)。after(newRow);无法添加行到动态生成的表通过onclick事件处理程序使用jquery

感谢您的时间伙计。

$(document).ready(function() 
     {    
      var tableID = 1; 
      $('#btnAddSOWG').click(function(){createNewGroup(tableID++);}); 

      function createNewGroup(RecID) 
      {     
       var table  = document.createElement('table'); 
       table.id  = RecID; 
       var newRow  = table.insertRow(); 
       var oCell  = newRow.insertCell(); 
       oCell.innerHTML = "Work Group : <input type='text' name='t1'>";         

       var button  = document.createElement('input'); 
       button.type  = "button"; 
       button.id  = 'btn'+ RecID; 
       button.value = 'Add Work Item';     
       button.onclick = function(){createNewItem(RecID);} 

       oCell.appendChild(button); 

       $('body').append(table); 
      } 


      function createNewItem(tableID) 
      {         
       var selector = "#" +tableID; 
       var newRow= "<tr><td><input type='text' name='t1'><td></tr>"; 
       $(selector," tr:last").after(newRow); 

      } 
     }); 
    </script> 

HTML:

<body> 
    <input type=button id="btnAddSOWG" value="Add Group"> 
</body> 

回答

0

尝试用下面的方法createNewItem里面:

$(selector+" tr:last").after(newRow); 

我想应该是 '+',而不是 ''。

+0

@ Karthi,太棒了!现在再多一个查询,是否可以动态创建这一行并将onblur事件添加到它? “​​​​”; – santosh 2011-03-23 06:59:15

+0

假设您已经有表格行,那么您可以使用克隆方法动态地添加新行。 '$(selector +“tr:last”)。clone(true).insertAfter(selector +“tr:last”);'。要添加模糊,请参考[this](http://api.jquery.com/blur#) – Karthik 2011-03-23 07:25:40

+0

@Karthi,这一行$(选择器+“tr:last”)。clone(true).insertAfter(selector +“tr:last “);只是在应该执行createNewItem(tableID)函数的时候动态地建立新的表。 – santosh 2011-03-23 07:47:33

相关问题