用于删除表中行的Javascript.closest()/.next()/.sibbins()方法<;tr>;不起作用

用于删除表中行的Javascript.closest()/.next()/.sibbins()方法<;tr>;不起作用,javascript,jquery,html,Javascript,Jquery,Html,我尝试了在stackoverflow上找到的几种解决方案,但无法使其工作。以下是我的html代码: <div class "rowdiv"> <tr> <td width="5%"> <div class='text-center'> <a href="" onclick="deleteLine(this)" id="l_<%=k%>"><i class="icon-tr

我尝试了在stackoverflow上找到的几种解决方案,但无法使其工作。以下是我的html代码:

<div class "rowdiv">
    <tr>
        <td width="5%">
            <div class='text-center'> <a href="" onclick="deleteLine(this)" id="l_<%=k%>"><i class="icon-trash"></i></a>

            </div>
        </td>
        <td width="45%">
            <input class="form-control input-sm" id="description_<%=k%>" placeholder="Description" value="<%= @hash[k][0] %>">
        </td>
        <td width="10%">
            <select class="form-control input-sm" data-rule-required="true" id="unit_<%=k%>" name="validation_select">
                <option></option>
                <option>ml</option>
                <option>m2</option>
                <option>u</option>
            </select>
        </td>
        <td width="5%">
            <div class='text-center'>
                <input class="form-control input-sm" id="qte_<%=k%>" placeholder="Qte" value="<%= @hash[k][1] %>" onchange="priceUpdate(<%=k%>)">
            </div>
        </td>
        <td width="20%">
            <div class='text-right'>
                <div class="input-group">
                    <input class="form-control input-sm text-right" placeholder="PUHT" value="<%= @hash[k][2] %>" id="puht_<%=k%>" onchange="priceUpdate(<%=k%>)"> <span class="input-group-addon">
                                              E
                                            </span>

                </div>
            </div>
        </td>
        <td width="15%">
            <div class='text-right' id="montant_<%=k%>">
                <%=@ hash[k][2]*@hash[k][1] %>e</div>
        </td>
    </tr>
</div>
所以item运行良好,是我的标记组件,但对于i2,它给了我一个未捕获的TypeError:undefined不是一个函数。 我尝试了以下不同的i2代码,但未成功(与上面的错误相同):

i2=item.closest('.rowdiv').find('tr');
i2=item.siblings('tr');
i2=item.next('tr');

谢谢你的帮助

是dom元素而不是jQuery对象

要使用jQuery方法,需要将其包装在
$()

function deleteLine(item){
    $(item).closest('tr').remove();    
}

是一个DOM元素,而不是jQuery对象。您可能还应该使用
父项
而不是
最近的
。它们非常相似,但本页解释了区别:.@pseudosavant
parent
是一个
td
,不起作用。可以使用
父项
,但您必须确保树上没有任何相同的标记<代码>最近的在我的mind@charlietfl实际上,
parent
将一直遍历到文档根,直到找到与给定选择器匹配的元素。从jQuery文档中可以看到:“.parent()方法允许我们搜索父对象”@pseudosavant:no,您误解了这些文档。所引用的“父元素”是集合中每个元素的单个父元素。不是一个元素的多个父母(最好称为祖先)。谢谢!顺便问一下,$和document.getElementById之间的确切区别是什么?第二个返回一个dom元素,该dom元素可以通过将其转换为jQuery对象来供jQuery使用谢谢,我终于得到了这个!
function deleteLine(item){
    $(item).closest('tr').remove();    
}