2016-12-05 66 views
-1

我有以下的JavaScript,我从我的购物车的数据库中获取数据。但是,当我想要删除购物车数据时,它不起作用。 我不知道我是否正在进入代码 javascript:deleteRow(this)的这部分。不工作JavaScript功能删除

我离开了我的两个功能的完整代码:listarPedido()和(底部)deleteRow(r)

function listarPedido(){ 
    var articulos = localStorage.getItem("productos"); 
    var productos = articulos.split(";"); 
    var contador = 0;//cuenta numero de articulos en el carrito 

for(var i = 0; i < productos.length - 1; i++){ 
    var item = productos[i].split(","); 
    var pedido = ""; 

    for(var j = 0; j < item.length; j++){ 
     pedido = '<tr>'+ 
       '<td class="text-center">'+ '<img style="width: 100px; height: 100px" src="' + item[0] + '"/></td>' + 
       '<td id="celiminar" style="text-align:left;"><b>'+ item[1].toUpperCase() + '<br><br><br><br></b>' + 
       '<a style="text-decoration:none">Editar</a> | <a href="javascript:deleteRow(this)" style="text-decoration:none;">Delete</a></td>' + 
       '<td style="text-align:right; color:red"><b>'+ 'S/.'+ item[2] + '</b></td>' + 
       '<td class="text-center"><b>' 
       + '<input type="number" name="txtcant'+i+'" id="txtcant'+i+'" min="1" max="15" value="'+ item[3] +'" class="form-control">' + 
       '</b></td>'+ 
       '<td style="text-align:right;"><b>'+ 'S/.'+ (item[2]*item[3]).toFixed(2) + '</b></td>'; 
    } 
    //<a href="javascript:void()"><i class="fa fa-trash"></i></a> 
    $("#detallePedido").append(pedido); 

    $("#txtcant"+i).change(function(){ 
     resumen(); 
     //al cambiar el numero actualiza el total 
     $("#detallePedido tr").find("td").eq(4).html('<b>'+ 'S/.'+ (item[2] * $(this).val()).toFixed(2)+ '</b>'); 
    }); 

    contador++; 
} 

$("#lblnum").text(contador +" ARTÍCULOS"); 
} 

function deleteRow(r) { 
     var i = r.parentNode.parentNode.rowIndex; 
     document.getElementById(".table").deleteRow(i); 
    } 
+3

定义 “不工作”。 –

+0

首先,你做了'document.getElementById(“。table”)',但是没有任何地方提及它。此外,您的HTML中有'',但没有'',因此可能是某种东西。另外,当你运行它时,看看'i'是否是正确的值。 – Iluvatar

回答

3

你的代码是完全错误的:

document.getElementById(".table").deleteRow(i); 

我怀疑你有一个ID为 “表” 的元素。

你的功能,改写得到适当的表:

function deleteRow(link) { 
    var row = link.parentNode.parentNode; 
    var idx = row.rowIndex; 
    var table = row.parentNode; 
    table.deleteRow(idx); 
} 
+0

你可以在这里提供解决方案:'r.parentNode.parentNode.parentNode.deleteRow(r.parentNode.parentNode.rowIndex);' – somethinghere

+1

@somethinghere Correct。清理它并添加代码。 –

+2

由于您正在清理,我会将参数'r'重命名为'cell',但那只是我:)它会很好地与您的其他变量排队! – somethinghere