Javascript .closest()/。next()/。siblings()方法删除表中的行不起作用

时间:2014-07-16 23:37:13

标签: 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-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>

我在使用函数deleteLine(this)单击开头的标记时尝试删除整个tr组。这是JS脚本:

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

所以项目运行良好,是我的标签组件,但对于i2,它给了我一个未捕获的TypeError:undefined不是一个函数。 我尝试了以下不同的i2代码(与上面相同的错误):

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

感谢您的帮助!!

1 个答案:

答案 0 :(得分:2)

item是一个dom元素而不是jQuery对象

您需要将其包装在$()中以使用jQuery方法

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