带有multitag的jquery方法parent()不起作用

时间:2014-02-19 08:40:15

标签: javascript jquery html css

我正在尝试使用链接<a href="#" class="removeclass">remove row</a>进行删除 下面的一行:

$(AddButton).click(function (e)  //on add input button click
{

        FieldCount++; //text box added increment
        //add input box
        var menu = '<td><input....></td>';
        var numPortata = '<td><input...></td>';
        var quantita = '<td><input......></td>';
       // THIS IS THE ROW 
$(InputsWrapper).append('<tr><td><a href="#" class="removeclass"><b>&times;</b></a></td>'+ menu + numPortata + quantita +'</tr>');
        x++; //text box increment
return false;
});

$("body").on("click",".removeclass", function(e){ //user click on remove text
    if( x > 1 ) {
            $(this).parent('tr').remove(); //remove text box
            x--; //decrement textbox
    }
return false;
}) 

点击链接,直到我只使用div而不是tr它才能正常工作。 但是我需要使用表来执行此操作,以便为什么从唯一的<div>更改为包含行和单元格的表不起作用?

我需要编辑什么?我试图用.parent()代替tr我已经尝试td,显然它删除了&times;(×),但没有删除。如何删除整个tr?

1 个答案:

答案 0 :(得分:1)

您需要使用.closest()

$(this).closest('tr').remove();

.parent()将只找到直接父元素,在本例中为td元素,因为它与传递的选择器tr不匹配,该方法不会返回任何元素。相反,您想要找到祖先tr元素,因此您需要使用.closest()