如何使用jQuery从表格中删除特定行

3

第一个问题:

当用户删除特定行时,我需要使用ajax删除该行而不刷新页面。我该如何做?

第二个问题:

实际上,我正在计算从某天到前7天的页面访问次数。 但是,我希望在今天访问页面时,检索上一周的记录 也就是从星期天(2011年11月20日)到星期六(2011年11月26日) 当下周一访问页面时,我要检索这周的记录 也就是从星期天(2011年11月27日)到星期六(2011年12月3日)

function authenticate(){
$.ajax({
type: "POST",
url: "authentication.php",                 
data: $("#login_form").serialize(),
success: function(msg){
    if(msg==1){
    $('#delete').html("success"); //if success message appear only i have to remove particular row
    }) 
    }else{
    $('#delete').html("error");
    }
},
error:function(msg){
    alert(msg);
    $('#delete').dialog("close"); 
}              
});
}
<div style='display: none;' id='delete'></div>
<table border="1">
<tr>
    <th>Title</th>
    <th>Public Id</th>
    <th>Pass</th>
    <th></th>
</tr>
<?php
$select = $db->select ()
    ->from ( 'test', '*' )
    ->where ( 'user_id = ?', 1 )
    ->where ( 'test.created > DATE_SUB(CURDATE(), INTERVAL 7 DAY)' );
$tourDetails = $db->fetchAll ( $select );
$i = 0;
foreach ( $tourDetails as $row1 ) {
    $i ++;
    $title = $row1 ['title'];
    $PublicId = $row1 ['public_id'];
    if (($i % 2) == 0 ) {
        $rowResponse =  prepareRow ( true, $title, $PublicId);
        echo $rowResponse;
    } else {
        $rowResponse = prepareRow ( false, $title, $PublicId);
        echo $rowResponse;
    }
}
function prepareRow($flag, $title, $PublicId) {
$rowResponse = "";
if ($flag) {
    $rowResponse .= '<tr class="even">';
} else {
    $rowResponse .= '<tr class="odd" >';
}
    $rowResponse .= '   
    <td> ' . $title . ' </td>
    <td> ' . $publicId . ' </td>
    <td><p><a onclick=openDialog("'. $PublicId .'","delete") href="#" id="dialog_link"> 
    Delete </a></p>
    </td>';
return $rowResponse;
?>
</table>
3个回答

5

你可以使用jQuery的nth-child选择器。

$("table#mytableid tr:nth-child(2)").remove();

例如,这将删除第二行。确保您的表格有一个ID或类,以便更轻松地选择它(不会意外删除页面上每个表格的第二行,如果您有更多)...
编辑
从您代码中所看到的,您可以从onclick事件中选择父tr元素,然后将其作为新参数发送到函数中(如果ajax返回成功,则将其删除),或立即删除它...或者您想要的任何其他操作。

我必须删除非第二行的用户删除行。 - vvr
1
我刚刚给了你一个例子... 你可以找到已删除行的行号并将其放在2的位置,或者在删除时为该行分配一个ID,然后使用Vikky的方法。 - Shomz
您可以使用特定点击元素的索引。 - Punit
感谢您的帮助,已完成。 - vvr

0

使用 msg.d

例如:

if(msg.d == 1)

1
仅提供代码的答案通常不被鼓励。能否详细说明一下?这与其他答案相比如何? - Jason

0
$('#myTableRow').remove(); 

 This works fine if your row has an id, such as:
<tr id="myTableRow"><td>blah</td></tr> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接