我有一些看起来像这样的代码:
jQuery(this).parent().parent().parent().parent().next(".results-table").css("display", "block");
基本上,点击表格内的链接后,将显示以下结果表格,问题是该链接在 td 内,在 tr 内,当然在表内,因此重复父选择器。
有没有更好的方法可以做到这一点,我错过了?不幸的是,我没有很多使用 jQuery 的经验。
我有一些看起来像这样的代码:
jQuery(this).parent().parent().parent().parent().next(".results-table").css("display", "block");
基本上,点击表格内的链接后,将显示以下结果表格,问题是该链接在 td 内,在 tr 内,当然在表内,因此重复父选择器。
有没有更好的方法可以做到这一点,我错过了?不幸的是,我没有很多使用 jQuery 的经验。
您可以使用jQuery(this).closest("table")
http://api.jquery.com/closest/
jQuery(this).parents("table").next(".results-table").css("display", "block");
或者
jQuery(this).closest("table").next(".results-table").css("display", "block");
jQuery(this).closest('table').css("display", "block");
甚至
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");
});