我有一些看起来像这样的代码:
jQuery(this).parent().parent().parent().parent().next(".results-table").css("display", "block");
基本上,点击表格内部的链接后,会显示以下结果表,问题是这个链接位于一个td里面,它在一个tr里面,当然在一个表格里面,因此重复的父节点选择器。
有没有更好的方法来做到这一点,我错过了?不幸的是,我没有很多jQuery的经验。
答案 0 :(得分:6)
您可以使用jQuery(this).closest("table")
http://api.jquery.com/closest/
答案 1 :(得分:4)
jQuery(this).parents("table").next(".results-table").css("display", "block");
或
jQuery(this).closest("table").next(".results-table").css("display", "block");
答案 2 :(得分:2)
jQuery(this).closest('table').css("display", "block");
甚至
jQuery(this).closest('.results_table').css("display", "block");
取决于您所需的结果和HTML元素。
答案 3 :(得分:0)
$(this).parents(":eq(3)")
这可能会有所帮助
答案 4 :(得分:0)
或者......您可以使用事件委派,例如.on()而不是.click()。然后,您只需使用e.delegateTarget。
例如,
$(parent).on("click", link, function(e) {
jQuery(e.delegateTarget).next(".results-table").css("display", "block");
});