回答:
.eq()
OPの質問にはより適切です。:eq()
文字列パラメータ内で使用されている$
一方、.eq()
既存のjQueryオブジェクトのメソッドです。
$('select').find('option').eq(n)
基本的にグループ化を無視し、全体としてすべてのオプションを取得します。あなたはグループごとにそれをしたい場合は、このようなものが必要です:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
たとえば、:eqセレクターを使用できます。
$("td:eq(2)").css("color", "red"); // gets the third td element
またはeq(int)関数:
$("td").eq(2).css("color", "red");
また、インデックスはゼロから始まることに注意してください。
:nth()
セレクターを-と混同してはならない:nth-child()
jQueryオブジェクトを構築するクエリを制御できる場合は、 :eq()
$("div:eq(2)")
それを制御できない場合(たとえば、別の関数または何かから渡されている場合)、次を使用します。 .eq()
var $thirdElement = $jqObj.eq(2);
または、それらのセクション(たとえば、3番目、4番目、5番目の要素)が必要な場合は、 .slice()
var $third4th5thElements = $jqObj.slice(2, 5);
.eq()
ないでください:eq()
。わずかなパフォーマンスの向上。
変数にjqueryオブジェクトが既にある場合は、jqueryを使用せずに、通常のインデックス付き配列として扱うこともできます。
var all_rows = $("tr");
for(var i=0; i < all_rows.length; i++){
var row = all_rows[i];
//additionally, you can use it again in a jquery selector
$(row).css("background-color","black");
}
上記の例はまったく役に立ちませんが、jqueryによって作成されたオブジェクトをインデックス付き配列として処理する方法を表しています。
<select>
要素のリストが含まれていて、選択したコンボボックス要素が必要な場合は、$(row).val();
私があなたの質問を正しく理解していれば、いつでもget関数を次のようにラップできます:
var $someJqueryEl = $($('.myJqueryEls').get(3));
eq()
無料で提供されるものです。
たとえば、ループ内の特定の要素/ノードまたはタグをフェッチする場合
<p class="weekday" data-today="monday">Monday</p>
<p class="weekday" data-today="tuesday">Tuesday</p>
<p class="weekday" data-today="wednesday">Wednesday</p>
<p class="weekday" data-today="thursday">Thursday</p>
したがって、上記のコードループが実行され、特定のフィールドを選択する必要があります。そのためには、上記のループから期待される要素のみを選択できるjQuery選択を使用する必要があるため、コードは次のようになります。
$('.weekdays:eq(n)');
例えば
$('.weekdays:eq(0)');
他の方法による
$('.weekday').find('p').first('.weekdays').next()/last()/prev();
ただし、最初の方法は、HTML <tag>
クラス名が一意の場合により効率的です。
注:2番目のメソッドは、ターゲット要素またはノードにクラス名がない場合に使用されます。
詳細についてはhttps://api.jquery.com/eq/に従ってください
ただし、セレクターを使用した反復では意味がありません。
var some = $( '...' );
for( i = some.length -1; i>=0; --i )
{
// Have to transform in a jquery object again:
//
var item = $( some[ i ] );
// use item at will
// ...
}
<html>
<head></head>
<body>
<script type="text/javascript"
src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('li:eq(1)').hide();
});
</script>
<ol>
<li>First</li>
<li>Second</li>
<li>Third</li>
</ol>
</body>
</html>
実行すると、順序付けられたリストに2つの項目、FirstとThirdが表示されます。2番目は隠されました。
$(function(){
$(document).find('div').siblings().each(function(){
var obj = $(this);
obj.find('div').each(function(){
var obj1 = $(this);
if(!obj1.children().length > 0){
alert(obj1.html());
}
});
});
});
<div id="2">
<div>
<div>
<div>XYZ Pvt. Ltd.</div>
</div>
</div>
</div>
<div id="3">
<div>
<div>
<div>ABC Pvt Ltd.</div>
</div>
</div>
</div>
.eq()
代わりになるはずではありません:eq()
か?