如何找到第二个最接近的 div?
例如,为了获得最接近的,我成功地使用了:
var closest_div_id = $(this).closest('div').attr('id');
现在,我如何获得第二近的?就像是:
$(this).(closest('div').closest('div')).attr('id'); ???
如何找到第二个最接近的 div?
例如,为了获得最接近的,我成功地使用了:
var closest_div_id = $(this).closest('div').attr('id');
现在,我如何获得第二近的?就像是:
$(this).(closest('div').closest('div')).attr('id'); ???
jQuery#closest()将返回当前元素,如果它匹配选择器。因此,您可以像@Frederic 建议的那样使用jQuery#parents() ,也可以手动增加一个元素:
$(this).closest('div').parent().closest('div').attr('id');
也就是说,您的代码中还有另一个问题。您将两个最接近的()调用包装在括号中。这将产生这两个调用在其他调用之前被评估的效果。由于您可能没有在您的范围内调用最接近的函数,因此给定的代码将因 ReferenceError 而失败。
(我只是为了解释你的初始代码失败的原因,你真的应该接受@Frederic 的建议)
为了获得比 更好的性能eq
,您可以使用slice
:
var secondClosest = $(this).parents("div").slice(1, 2).attr('id');