Ответы:
Почему бы сначала не просмотреть (короткую) страницу селекторов?
Вот оно: :eq()оператор. Он используется так же, как get(), но он возвращает объект jQuery.
Или вы можете использовать .eq()функцию тоже.
.eq()больше подходит для вопроса ОП. :eq()используется в строковом параметре to $, тогда .eq()как это метод существующего объекта jQuery.
$('select').find('option').eq(n)будет в основном игнорировать группировку и получит все опции в целом. Если вы хотите, чтобы это для группы, что-то вроде этого необходимо:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
Вы можете использовать : eq selector, например:
$("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);
Или, если вы хотите их раздел (скажем, третий, четвертый и пятый элементы), используйте .slice()
var $third4th5thElements = $jqObj.slice(2, 5);
.eq()вместо того, чтобы на :eq()самом деле. Небольшое повышение производительности.
.eq () - Целое число, обозначающее позицию элемента на основе 0.
Пример:
Рассмотрим страницу с простым списком:
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>list item 4</li>
</ul>
Мы можем применить этот метод к набору элементов списка:
$( "li" ).eq( 2 ).css( "background-color", "red" );
Если у вас уже есть объект 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>имеет уникальное имя класса.
ПРИМЕЧАНИЕ. Второй метод используется, когда их нет в именах классов в целевом элементе или узле.
для более подробной информации следуйте 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>
Когда он запускается, в упорядоченном списке появляются два элемента: «Первый» и «Третий». Второй был спрятан.
$(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()?