我在删除表格行时遇到问题,我可以突出显示红色行但是当我尝试删除它时,幻灯片功能会混乱。我已将它们包裹在一个div中,但我不知道如何访问tr的孩子,然后是那个孩子?
$('#test tr:not(:first)').click(function()
{
$(this).css("background-color","red");
$(this).children("td div").slideUp(function()
{
$(this).parent().remove();
});
});
问题在于这一行:
$(this).children("td div").slideUp(function()
我也试过
$(this).children("td").children("div").slideUp(function()
向上滑动仅删除第一列。
<table border="1" width="600" cellspacing="0" cellpadding="0" id="test">
<tr>
<td><b>First Name</b></td>
<td><b>Last Name</b></td>
<td><b>Address</b></td>
<td><b>Town</b></td>
</tr>
<tr>
<td><div>First Name</td>
<td>Last Name</td>
<td>Address</td>
<td>Town</div></td>
</tr>
</table>
我是否需要使用<td>
代码包装每个div
的内容?
由于
答案 0 :(得分:5)
调用children("td div")
会找到与选择器匹配的所有直接子项。 (所有<div>
的孩子恰好在<td>
s内)
由于所有直系儿童都是<td>
,因此无法与之匹敌。
致电children("td").children("div")
会在所有<div>
内找到所有<td>
。
因此,它会找到你唯一的<div>
。
编辑:您可以使用jQuery创建包装元素; see my blog post:
$('#test tr:not(:first)').click(function() {
$(this).css("background-color","red");
$(this).children().wrapInner('<div>').children().slideUp(function() {
$(this).closest('tr').remove();
});
});