Javascript 使用parent()三次,有更好的方法吗?
我有一些代码如下所示:Javascript 使用parent()三次,有更好的方法吗?,javascript,jquery,html,Javascript,Jquery,Html,我有一些代码如下所示: jQuery(this).parent().parent().parent().parent().next(".results-table").css("display", "block"); 基本上,单击表内的链接后,下面的结果表将显示,问题是此链接位于td内,而td位于tr内,tr当然位于表内,因此重复的父选择器 有没有比这更好的方法让我错过了?不幸的是,我对jQuery没有太多的经验。您可以使用jQuery(this)。最近的(“表”) 或 甚至 jQuery(t
jQuery(this).parent().parent().parent().parent().next(".results-table").css("display", "block");
基本上,单击表内的链接后,下面的结果表将显示,问题是此链接位于td内,而td位于tr内,tr当然位于表内,因此重复的父选择器
有没有比这更好的方法让我错过了?不幸的是,我对jQuery没有太多的经验。您可以使用jQuery(this)。最近的(“表”)
或
甚至
jQuery(this).closest('.results_table').css("display", "block");
取决于所需的结果和HTML元素
$(this).parents(":eq(3)")
这可能会有帮助或。。您可以使用事件委派,例如.on()而不是.click()。然后,您可以简单地使用e.delegateTarget 比如说,
$(parent).on("click", link, function(e) {
jQuery(e.delegateTarget).next(".results-table").css("display", "block");
});
根据您的DOM,.parents(“您的选择器”)可能会工作得更好。您是否可以在表中添加一个示例块来显示元素上的任何类或id?这比解释元素的布局更为有益。你知道与最近的父元素相比是否有任何好处,反之亦然吗?在链接页面中,
.closest
和.parents()
之间有两列比较。简而言之,.closest()
将在找到第一个最近的父表时停止,而.parents()
将一直爬升到文档级别。parents查找无、一个或多个元素,而closest将查找无或一个元素,并包括根元素。
jQuery(this).closest('.results_table').css("display", "block");
$(this).parents(":eq(3)")
$(parent).on("click", link, function(e) {
jQuery(e.delegateTarget).next(".results-table").css("display", "block");
});