JQueryを使用して、要素の前の兄弟が最初の子であるかどうかを確認するにはどうすればよいですか?JQuery:前の兄弟が最初の子であるかどうかを確認する
私は、次のコードを試してみましたが、それは動作しません:
if($(this).prev() === $(this).siblings(":first-child")){
//do something
}
上記===
アプローチ使用例:http://jsfiddle.net/xnHfM/は
JQueryを使用して、要素の前の兄弟が最初の子であるかどうかを確認するにはどうすればよいですか?JQuery:前の兄弟が最初の子であるかどうかを確認する
私は、次のコードを試してみましたが、それは動作しません:
if($(this).prev() === $(this).siblings(":first-child")){
//do something
}
上記===
アプローチ使用例:http://jsfiddle.net/xnHfM/は
if($(this).index() === 1){ // if index is 1 it means it's for sure the second children
// here u can grab $(this).prev(), and it's for sure the first one
}
P.S.ですおかげで:)
+1 - ありがとう、巧妙な解決策ですが、ヨシのように読みにくいです。 –
よろしくお願いします。私が@ Yoshiを受け入れる前にそれを見つけることができるかどうかを確認します。 –
完了(私の答えのリンクを参照) index()を使って、他のブラウザでも試してみてください。 – stecb
これが最も効率的な方法ではないでしょうが、しかし、あなたprevAllを使用し、前の兄弟の数を数えます。ここでの例では、(jsFiddle)...
<ul id="test1">
<li>One</li>
<li class="two">Two</li>
</ul>
<ul id="test1">
<li>One</li>
<li>Two</li>
<li class="three">Three</li>
</ul>
<script>
alert("Test 1 is...");
alert($("#test1 .two").prevAll().length == 1);
alert("Test 2 is...");
alert($("#test2 .three").prevAll().length == 1);
</script>
$(this).parent().find(">:first-child")[0] == $(this).prev()[0]
てみてください@RightSaidFred、最後のコメントを参照してください。=>http://jsperf.com/jquery-check-previous-first-child
編集:私は.is( '第一子')対このソリューションについてPERFを見てみますこれは:
if ($(this).prev(':first-child').length > 0) {
要素が2番目の子ですか? '$(this).prev()。prev()。length == 0'は動作するのでしょうか、それとも別の意味ですか? – wrschneider