我已尝试在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');
感谢您的帮助!!
答案 0 :(得分:2)
item
是一个dom元素而不是jQuery对象
您需要将其包装在$()
中以使用jQuery方法
function deleteLine(item){
$(item).closest('tr').remove();
}