【发布时间】:2015-10-25 21:42:30
【问题描述】:
我正在为使用 mysql 填充其数据的表开发下拉功能。当用户单击按钮时,它将在包含该按钮的当前行下创建一个新表行。期望的目标是使按钮在再次按下时将删除新创建的行,现在它只会继续创建其他新行。这是我目前所拥有的:
表格 (PHP):
while($sound=mysql_fetch_assoc($records)){
echo "<tr>";
echo "<td width='40' class='player'> <a href='beats/".$sound['downloadlink']."' class='sm2_button'>Play/</a></td>";
echo '<td width="250" class="name">'.$sound['name'].' <span class="red date">'.$sound['date'].'</span></td>';
echo "<td width='88' class='bpm'>".$sound['bpm']." B.P.M.</td>";
echo "<td width='72' class='length'>".$sound['length']."</td>";
echo "<td width='275' class='keywords'>".$sound['keywords']."</td>";
echo "<td width='96' class='buy'><img class='button' src='99cents.png'/></td>";
echo "</tr>";
新建表格行:
$(".button").on('click', function(){
$(this).parents('tr').after('<tr><td height="100" colspan="6"><img src="mp31.png"/></td></tr>');
});
尝试在表格行的创建和删除之间切换:
$(".button").on('click', function(){
.toggle($(this).parents('tr').after('<tr><td height="100" colspan="6"><img src="mp31.png"/></td></tr>'); : .remove());
});
【问题讨论】:
-
乍一看,作为用户,我希望 NEW 行可能包含所描述的“删除我”功能。
-
一个很好的提示(我的答案已获得批准):您不能只将 TR 添加到表中。 DOM 操作会将这个 TR 从 TABLE 中删除。您应该做的是在将整个表格放入 DOM 之前重新渲染整个表格。 Imo 更好的解决方案是将 DIV 与 display:table-cell 等一起使用,而不是使用任何表格(浏览器不应该允许您将行注入到渲染的表格中,但应该让您删除该表格并重新渲染它)
标签: javascript jquery html html-table