我有一个表,其中包含许多订购详细信息,然而,当我想从管理页面添加产品时,即使所有原始的表结构都很好,一旦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;
}
即使您没有在表中创建<tbody>
元素,浏览器通常也会"更正它"并为您创建一个。
编辑:要在当前单击的行之后立即添加它们:
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;
}
您必须通过以下方式将"元素"参数传递给您的函数:
<a href="#" onclick="addNewItem(this); return false;">Add Another Music Item</a>
请注意,项目将在单击的行之后立即添加。。。如果您添加了1行以上,它将添加在您添加的最后一行之前(因此就在单击的行之后)。我不知道这是否是你想要的行为。。。