用Javascript替换jQuery函数

时间:2011-08-25 07:43:29

标签: javascript jquery

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

3 个答案:

答案 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 = "";
}