jQueryの配列内の前のアイテムを見つけます
-
22-08-2019 - |
質問
私はjqueryのを持っています: $( "アイテム")
これは私のクラスの項目のすべての要素を提供します。
私は、このメソッドから取得し、配列から項目を選択し、この前のアイテムを見つける必要があります。
。。のようなもの:$(」。アイテム ")(" #3" )前のページ()を選択 - それは動作するはず除い:)
ので、私はアイテムのリストを持っていたと仮定します:
<div id=1 class="item"></div>
<div id=2 class="item"></div>
<div class="somethingElse"></div>
<div id=3 class="item"></div>
<div id=4 class="item"></div>
私は "<div id=2></div>
" の項目を取得する必要があります。
任意のアイデア?
解決
prev
はすぐに前の兄弟を見ます。これを試してください:
$('#3').prevAll('div.item').eq(0);
それはあなたが望む結果を得る必要があります。 googletorpで述べたように、$('.item').find('#3');
を行うと、冗長と遅くなります。 IDは、あなたが直接$('#3')
を行うには問題ないはずですので、ユニークなことになっています。 IDは、仕様ごとに、が、想定されていないこと、しかし、注意を行います数字ので始まります:
IDとNAMEトークンは文字で始まる必要があります([-ZA-Z])と文字の任意の数、数字([0-9])、ハイフンが続いてもよい( " - ")、アンダースコア(」 _ ")、コロン(": ")、ピリオド(" ")
他のヒント
あなたはあなただけあなたが期待したい得たものを書いていません。実際にどのようなあなたのコードをgetwithべきことはクラスsomethingElseとdiv要素です。私はあなたがどうなる2いただきたい取得する。
$(....).prev(".item");
引数なしで、前はDOM、MO状物質スタイルやタイプで直前の要素を取得ウィルます。
何をすることはほとんど等しいです。
$("#3").prev()
だけ遅くなります。最初の選択は、あなたが最後に()を使用しない限り効果がありませんが、とにかくidでオブジェクトを取得する際に必要とされていません。