doujiufutaog59220 2010-10-19 14:47
浏览 15
已采纳

Jquery + php,从表td中删除动态行点击

I'm trying to remove a row from a table when I click a specific row column. I'm using .live() so that I can remove rows added from a ajax request. It works fine, my problem is, the table comes from php with two rows, I can then insert new ones and remove them, but when I remove one of the rows that came with php, it remove all rows from the table.

PHP:

<table id="listaEquipamentos">
<?php 
    if($this->listaEquipamentos){
     foreach ($this->listaEquipamentos as $equipamento) { 
      $UF = trim($equipamento['siglaUF']);?>
     <tr>
      <td><?php echo $equipamento['siglaUF'];?></td>
      <td><?php echo $equipamento['siglaLocalidade'];?></td>
      <td><?php echo $equipamento['siglaEstacao']?></td>
      <td><?php echo $equipamento['nomeEquipamento'];?></td>
      <td><?php echo $something; ?></td>
      <td align="center">
       <?php echo "<input class='bot1' type='button' value='X'> " ?>
      </td>
     </tr>
     <?php } ?>
    </table>

JavaScript:

$('#listaEquipamentos tr > td:nth-child(6)').live("click", function(){
 if(confirm("Do you want to remove this row?")){
  $(this).parent('tr').remove();
 }
});

$("#btnAddEquipamento").click(function(){
 var ok = 1;
 if($("#slcUF").val() == 0){
  alert("UF em Branco");
  ok = 0;
 } else if($("#slcLocalidade").val() == 0){
  alert("Localidade em Branco");
  ok = 0;
 } else if($("#slcEstacao").val() == 0){
  alert("Estacao em Branco");
  ok = 0;
 } else if($("#txtEquipamento").val() == ""){
  alert("Equipamento em Branco");
  ok = 0;
 } else if($("#slcEquipamento").val() == "0"){
  alert("Equipamentoo em Branco");
  ok = 0;
 }
 if(ok){
  if($("#slcAbrangencia").val() != ""){
   var toadd = $('#slcEquipamento option:selected').text();
   var existe = 0;

   $("#divListaEquipamento tr>td:nth-child(4)").each(function(index){
    if( $(this).text() == toadd)
     existe = 1;
        });

   if(existe != 1){

    var uf = $('#slcUF option:selected').text();
    var loc = $('#slcLocalidade option:selected').text();
    var est = $('#slcEstacao option:selected').text();
    if($("#slcEquipamento").val() > 0){
     $("#hdnEquipamento").val($("#slcEquipamento").val()+"||"+$('#slcEquipamento option:selected').text());
    }else{
     var equip = $('#txtEquipamento').val().substr(0,15);
     $("#hdnEquipamento").val(equip);
    }
    var tempLoc = loc.split("-");
    var tempEst = est.split("-");
    $("#hdnUF").val(uf.substr(0,2));
    $("#hdnLocalidade").val(tempLoc[0]);
    $("#hdnEstacao").val(tempEst[0]);
    $.post("/aplicacao/jm/index.php/janela/addequipamento", $("#frmNovaJanela").serialize(),
         function(data){
        if(data[0] != null){
         $(".tabResultado1 > tbody>tr:last").prev().append("<tr><td>"+data[1]+"</td><td>"+data[3]+"</td><td>"+data[5]+"</td><td>"+data[7]+"</td><td>"+data[8]+"</td><td><input class='bot1' type='button' value='X'></td></tr>");
         var total = parseInt($("#divListaEquipamento tr:last > td:nth-child(5)").text()) + parseInt(data[8]);
         $("#divListaEquipamento tr:last > td:nth-child(5)").text(total);
        }else alert("Problema ao gravar equipamento.")
        }, "json");    
   }else{
    alert('O Equipamento '+toadd+' já está na lista.');
   }
  }else{
   alert ("Favor Selecionar a Abrangencia.");
  }
 }
});

I'v already tried:

$(this).parent('tr').remove();
$(this).parents('tr').remove();
$(this).parent().parent().remove();
$(this).closest('tr').remove();
  • 写回答

3条回答 默认 最新

  • douan3182 2010-10-19 15:47
    关注

    I was probably doing something stupid! I'v changed some things, and now it works!

    $('#listaEquipamentos tr > td:nth-child(6)').live("click", function(){
        if(confirm("Deseja remover esta linha?")){
            $(this).parent('tr').remove(); ;
        }
    });
    
    $("#btnAddEquipamento").click(function(){
        var ok = 1;
        if($("#slcUF").val() == 0){
            alert("UF em Branco");
            ok = 0;
        } else if($("#slcLocalidade").val() == 0){
            alert("Localidade em Branco");
            ok = 0;
        } else if($("#slcEstacao").val() == 0){
            alert("Estacao em Branco");
            ok = 0;
        } else if($("#txtEquipamento").val() == ""){
            alert("Equipamento em Branco");
            ok = 0;
        } else if($("#slcEquipamento").val() == "0"){
            alert("Equipamentoo em Branco");
            ok = 0;
        }
        if(ok){
            if($("#slcAbrangencia").val() != ""){
                var toadd = $('#slcEquipamento option:selected').text();
                var existe = 0;
    
                $("#divListaEquipamento tr>td:nth-child(4)").each(function(index){
                    if( $(this).text() == toadd)
                        existe = 1;
                  });
    
                if(existe != 1){
    
                    var uf = $('#slcUF option:selected').text();
                    var loc = $('#slcLocalidade option:selected').text();
                    var est = $('#slcEstacao option:selected').text();
                    if($("#slcEquipamento").val() > 0){
                        $("#hdnEquipamento").val($("#slcEquipamento").val()+"||"+$('#slcEquipamento option:selected').text());
                    }else{
                        var equip = $('#txtEquipamento').val().substr(0,15);
                        $("#hdnEquipamento").val(equip);
                    }
                    var tempLoc = loc.split("-");
                    var tempEst = est.split("-");
                    $("#hdnUF").val(uf.substr(0,2));
                    $("#hdnLocalidade").val(tempLoc[0]);
                    $("#hdnEstacao").val(tempEst[0]);
                    $.post("/aplicacao/jm/index.php/janela/addequipamento", $("#frmNovaJanela").serialize(),
                               function(data){
                                    if(data[0] != null){
                                        $("#listaEquipamentos > tbody:last").append("<tr><td>"+data[1]+"</td><td>"+data[3]+"</td><td>"+data[5]+"</td><td>"+data[7]+"</td><td>"+data[8]+"</td><td><input class='bot1' type='button' value='X'></td></tr>");
                                        var total = parseInt($("#totalCliente").val()) + parseInt(data[8]);
                                        $("#totalCliente").val(total);
                                    }else alert("Problema ao gravar equipamento.")
                                 }, "json");                
                }else{
                    alert('O Equipamento '+toadd+' já está na lista.');
                }
            }else{
                alert ("Favor Selecionar a Abrangencia.");
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误