Yanıtlar:
Neden önce (kısa) seçiciler sayfasına göz atmıyorsunuz?
İşte: :eq()operatör. Aynı şekilde kullanılır get(), ancak jQuery nesnesini döndürür.
Veya .eq()işlevi de kullanabilirsiniz .
.eq()OP sorusu için daha uygundur. :eq()dize parametresi içinde kullanıldığında $ise, .eq()var olan bir jQuery nesne üzerinde bir yöntemdir.
$('select').find('option').eq(n)temel olarak gruplandırmayı yok sayar ve tüm seçenekleri bir bütün olarak alır. Grup başına istiyorsanız, bunun gibi bir şey gereklidir:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
Örneğin: eq seçiciyi kullanabilirsiniz, örneğin:
$("td:eq(2)").css("color", "red"); // gets the third td element
Veya eq (int) işlevi:
$("td").eq(2).css("color", "red");
Ayrıca, dizinlerin sıfır tabanlı olduğunu unutmayın.
:nth()seçici de kullanabilirsiniz - karıştırılmamalıdır:nth-child()
jQuery nesnesini oluşturan sorgu üzerinde denetiminiz varsa, :eq()
$("div:eq(2)")
Üzerinde kontrolünüz yoksa (örneğin, başka bir işlevden veya başka bir şeyden geçiriliyorsa), .eq()
var $thirdElement = $jqObj.eq(2);
Veya bir bölümünü istiyorsanız (örneğin, üçüncü, dördüncü ve beşinci öğeler), .slice()
var $third4th5thElements = $jqObj.slice(2, 5);
.eq()yerine kullanmalısınız :eq(). Hafif performans artışı.
.eq () - Elemanın 0 tabanlı konumunu gösteren bir tam sayı.
Ör:
Üzerinde basit bir liste bulunan bir sayfa düşünün:
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>list item 4</li>
</ul>
Bu yöntemi liste öğeleri kümesine uygulayabiliriz:
$( "li" ).eq( 2 ).css( "background-color", "red" );
Bir değişkente zaten jquery nesneniz varsa, jquery kullanmadan bunu yalnızca normal bir dizinlenmiş dizi olarak ele alabilirsiniz:
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");
}
Yukarıdaki örnek herhangi bir şekilde yararlı olmasa da, jquery tarafından oluşturulan nesneleri dizinlenmiş diziler olarak nasıl ele alabileceğinizi temsil eder.
<select>öğe listesi içeriyorsa ve seçilen birleşik giriş öğesi istiyorsanız, şu öğeyi kullanın:$(row).val();
Sorunuzu doğru anlarsam, get işlevini her zaman şu şekilde sarabilirsiniz:
var $someJqueryEl = $($('.myJqueryEls').get(3));
eq()size ücretsiz veren budur .
Döngüdeki belirli bir öğeyi / düğümü veya etiketi getirmek istiyorsanız, ör.
<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>
Bu nedenle, yukarıdaki kod döngüsü yürütülür ve bunun için belirli alanın seçilmesini istiyoruz, sadece yukarıdaki döngüden bekletme öğesini seçebilen jQuery seçimini kullanmalıyız, böylece kod
$('.weekdays:eq(n)');
Örneğin
$('.weekdays:eq(0)');
ve diğer yöntemlerle
$('.weekday').find('p').first('.weekdays').next()/last()/prev();
ancak HTML <tag>benzersiz sınıf adı olduğunda ilk yöntem daha verimlidir .
NOT: İkinci yöntem, hedef öğede veya düğümde sınıf adı olmadığında kullanılır.
daha fazla bilgi için https://api.jquery.com/eq/ adresini takip edin
Seçici kullanan yinelemeler için bir anlam ifade etmiyor gibi görünüyor:
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>
Çalıştığında, sıralı listede Birinci ve Üçüncü gösteren iki öğe vardır. İkincisi gizlendi.
$(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()Bunun yerine olması gerekmiyor:eq()mu?