2番目に近いdivを見つけるにはどうすればよいですか?
たとえば、最も近いものを取得するために、私は正常に使用しています:
var closest_div_id = $(this).closest('div').attr('id');
では、2番目に近いものを取得するにはどうすればよいですか?何かのようなもの:
$(this).(closest('div').closest('div')).attr('id'); ???
2番目に近いdivを見つけるにはどうすればよいですか?
たとえば、最も近いものを取得するために、私は正常に使用しています:
var closest_div_id = $(this).closest('div').attr('id');
では、2番目に近いものを取得するにはどうすればよいですか?何かのようなもの:
$(this).(closest('div').closest('div')).attr('id'); ???
jQuery#closest()は、セレクターと一致する場合、現在の要素を返します。したがって、@ Fredericによって提案されたようにjQuery#parents()を使用するか、手動で1つの要素を上げることができます。
$(this).closest('div').parent().closest('div').attr('id');
そうは言っても、コードに別の問題がありました。2つのclosest()呼び出しを括弧で囲みました。これは、これら2つの呼び出しが他の呼び出しよりも先に評価されるという効果があります。スコープ内に最も近いと呼ばれる関数がない可能性があるため、指定されたコードはReferenceErrorで失敗します。
(これは、最初のコードが失敗した理由の説明としてのみ提供しています。実際には、@ Fredericの提案に従う必要があります)
よりも優れたパフォーマンスを得るにはeq
、次を使用できますslice
。
var secondClosest = $(this).parents("div").slice(1, 2).attr('id');