Php 循环DIV不保留上一个表的表结构

Php 循环DIV不保留上一个表的表结构,php,jquery,html,Php,Jquery,Html,我有一个表,其中包含大量的订购细节,但是,当我想从管理页面添加产品时,即使所有原始表结构都可以正常工作,一旦jQuery回显一个额外的DIV以提供更多的表,是否有人可以在jQuery中找到一种方法,例如只向现有表添加几行 <?php echo(' <tr> <th colspan="2"><label>Item '.$mCount.'</label></th> </tr> <tr&

我有一个表,其中包含大量的订购细节,但是,当我想从管理页面添加产品时,即使所有原始表结构都可以正常工作,一旦jQuery回显一个额外的DIV以提供更多的表,是否有人可以在jQuery中找到一种方法,例如只向现有表添加几行

<?php echo('
<tr>
        <th colspan="2"><label>Item '.$mCount.'</label></th>
    </tr>
    <tr>
    <td colspan="1"><label for="itemDetailvar1'.$mCount.'">Track var1:</label></td> 
    <td colspan="1"><input type="text" size="25" name="itemDetails['.$mCount.'][var1]" value="" id="itemDetailvar1'.$mCount.'" " /></td>
    </tr>
<tr>
    <th colspan="2"><div id="itemPlacer"></div><a href="#" onclick="addNewItem(); return false;">Add Another Music Item</a>
    </td>
    </tr>
');
$mCount++;
?>
        <script type="text/javascript">
            var currCount = <?php echo($mCount); ?>;

            function addNewItem(){
jQuery("#itemPlacer").append('<tr><th colspan="2"><label>Track '+currCount+'</label></th></tr><tr><td colspan="1"><label for="itemDetailvar1'+currCount+'">Track var1:</label></td></tr>');             
                currCount++;
                return false;
            }
        </script>
我只需要知道一种使用jQuery添加一些基本表函数的方法,这样如果有人能告诉我一种方法,让按钮显示
添加项,然后单击,它会添加一些表行,这将是完美的

我猜itemPlacer是您表的id。 试着这样做:

function addNewItem(){
    jQuery("#itemPlacer tbody").append('<tr><th colspan="2"><label>Track '+currCount+'</label></th></tr><tr><td colspan="1"><label for="itemDetailvar1'+currCount+'">Track var1:</label></td></tr>');             
     currCount++;
    return false;
}
<a href="#" onclick="addNewItem(this); return false;">Add Another Music Item</a>
即使您没有在表中创建元素,浏览器通常也会更正它并为您创建一个

编辑: 要在当前单击的行之后立即添加它们,请执行以下操作:

function addNewItem(element){
    jQuery(element.parentNode.parentNode).after('<tr><th colspan="2"><label>Track '+currCount+'</label></th></tr><tr><td colspan="1"><label for="itemDetailvar1'+currCount+'">Track var1:</label></td></tr>');             
     currCount++;
    return false;
}
您必须通过以下方式将元素参数传递给函数:

function addNewItem(){
    jQuery("#itemPlacer tbody").append('<tr><th colspan="2"><label>Track '+currCount+'</label></th></tr><tr><td colspan="1"><label for="itemDetailvar1'+currCount+'">Track var1:</label></td></tr>');             
     currCount++;
    return false;
}
<a href="#" onclick="addNewItem(this); return false;">Add Another Music Item</a>

请注意,项目将在单击的行之后添加。。。如果添加的行数超过1行,则该行将添加在您添加的最后一行之前,即单击的行之后。我不知道这是不是你想要的行为…

有没有办法强迫它只添加到表的某个部分?它现在将自己添加到表的末尾,在所有订单细节之后,而不是项目所在的位置?我可以做一些形式的标记,比如说,附加在这里而不是其他地方吗?在您的情况下,我认为应该是$this.parentNode.parentNode.after'Track'+currCount+'Track var1:'你好,Naomi,再次感谢,恐怕这不起作用?在我让文本添加另一项,然后它将循环表行显示到页面底部之前,我已将jQueryTemplacer tbody.append更改为$this.parentNode.parentNode。在没有成功错误的情况下,忘记需要将其传递给函数。。。我已经编辑了我的答案,我刚刚测试了它,它工作了Hi Naomi,它现在正在做。。。第1项第2项第3项,如从原始订单添加的,但是,一旦使用管理区域,它将转到第1项、第2项、第3项,然后添加2项第1项、第2项、第3项、第5项、第4项?