<html>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="application/javascript">
$(document).ready(function() {
$("#evaluation_complete").parents("table")[0].remove(); //doesn't work
//this works
//var EvalComplete = document.getElementById("evaluation_complete");
//EvalComplete.parentNode.parentNode.parentNode.parentNode.parentNode.removeChild(
//EvalComplete.parentNode.parentNode.parentNode.parentNode);
});
</script>
<p>Testing little code</p>
<table>
<tbody>
<tr>
<td class="button-left"> </td>
<td class="button-middle" nowrap="true"><div
style="margin: 0px 0px 1px;">
<a class="button-text" name="evaluation_complete"
id="evaluation_complete" href="#">Evaluation Complete</a>
</div></td>
<td class="button-right"> </td>
</tr>
</tbody>
</table>
</body>
</html>我无法控制桌子是如何设置的。然而,我只知道链接的id。我的目标是遍历<table>元素并将其从DOM中删除。我也在closest上尝试过。我在火狐和IE9中得到的错误是remove不是一个函数。注释掉的块可以工作,但不是很动态。然而,在Chrome中,它运行得天衣无缝。谢谢你的帮助。
发布于 2013-03-05 04:33:02
它不起作用,因为您试图在原生JS元素上使用.remove(),而不是在jQuery元素上:
它不是:
$("#evaluation_complete").parents("table")[0].remove();但
$("#evaluation_complete").parents("table").eq(0).remove();或
$("#evaluation_complete").parents("table").first().remove();等。
使用[0]或get(0)从类似数组的jQuery对象获取原生JS元素,该对象没有.remove()方法。
顺便提一下,使用closest()会更有效率,并且适用于上面的示例。
https://stackoverflow.com/questions/15210525
复制相似问题