Как получить элемент nth jQuery

В jQuery $("...").get(3) возвращается третий элемент DOM. Какова функция возврата третьего элемента jQuery?

Ответ 1

Почему бы сначала не просмотреть (короткую) страницу селекторов?

Вот оно: оператор :eq(). Он используется так же, как get(), но возвращает объект jQuery.

Или вы можете использовать функцию .eq() тоже.

Ответ 2

Вы можете использовать селектор : eq, например:

$("td:eq(2)").css("color", "red"); // gets the third td element

Или функция eq (int) :

$("td").eq(2).css("color", "red");

Также помните, что индексы начинаются с нуля.

Ответ 3

если у вас есть контроль над запросом, который создает объект jQuery, используйте :eq()

$("div:eq(2)")

Если у вас нет контроля над ним (например, он передается из другой функции или чего-то еще), используйте .eq()

var $thirdElement = $jqObj.eq(2);

Или, если вам нужен раздел из них (скажем, третий, четвертый и пятый элементы), используйте .slice()

var $third4th5thElements = $jqObj.slice(2, 5);

Ответ 4

Я думаю, вы можете использовать этот

$("ul li:nth-child(2)").append("<span> - 2nd!</span>");

Он находит вторую li в каждой совпадающей ul и отмечает ее.

Ответ 5

.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" );

Для получения дополнительной информации:.eq()

Ответ 6

Если у вас уже есть объект 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, как индексированные массивы.

Ответ 7

Если я правильно понимаю ваш вопрос, вы всегда можете просто обернуть функцию get так:

var $someJqueryEl = $($('.myJqueryEls').get(3));

Ответ 8

Если вы хотите получить конкретный элемент / node или тег в цикле, например,

<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> имеет уникальное имя класса.

ПРИМЕЧАНИЕ. Второй метод используется, когда они не являются именем класса в целевом элементе или node.

для более последовательного https://api.jquery.com/eq/

Ответ 9

Итерации с использованием селектора, похоже, не имеют никакого смысла:

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
   // ...
}

Ответ 10

Live Пример доступа и удаления N-го элемента с помощью jQuery:

<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>

Когда он запускается, в упорядоченном списке отображаются два элемента, которые показывают, Первый и Третий. Второй был скрыт.

Ответ 11

 $(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>