我需要用纯javascript替换这个jQuery函数。
$('#myTable span.hide').click(function () {
$(this).closest("tr").remove();
return false;
});
我试图用它替换它,但它在IE中不起作用。
function rem(id) {
id.parentNode.parentNode.innerHTML = "<td></td>";
}
以下是该表的外观:
<tbody id="thebody">
<tr>
<td>
<span onclick="rem(this);" class="hide"></span>
</td>
//More td's here
</tr>
</tbody>
答案 0 :(得分:7)
function rem(id) { // id may be ambiguous here, because it's the element, not an ID
var elem = id; // current elem
while(elem.nodeName !== "TR") { // move up to tr as long as it isn't tr yet
elem = elem.parentNode; // if not tr yet, set elem to parent node
}
elem.parentNode.removeChild(elem); // remove tr from parent node
}
请注意,您的HTML应包含<table>
- 原始<tbody>
无效。
答案 1 :(得分:3)
要删除<span>
元素本身,请执行以下操作:
function rem(el) {
el.parentNode.removeChild(el);
}
如果您想删除最近的<tr>
,那么您需要以下内容:
function rem(el) {
while(el.nodeName != "TR") {
el = el.parentNode;
}
el.parentNode.removeChild(el);
}
答案 2 :(得分:0)
function rem(id) {
id.parentNode.innerHTML = "";
}