用Javascript替换jQuery函数

replace jQuery function with Javascript

本文关键字:函数 jQuery 替换 Javascript      更新时间:2023-09-26

我需要用纯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>
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>无效。

要删除<span>元素本身,请执行以下操作:

function rem(el) {
    el.parentNode.removeChild(el);
}

如果你想删除最近的<tr>,那么你需要这样的东西:

function rem(el) {
    while(el.nodeName != "TR") {
        el = el.parentNode;
    }
    el.parentNode.removeChild(el);
}
function rem(id) {
    id.parentNode.innerHTML = "";
}