Как выбрать второй элемент Class с помощью jQuery, работающего с Spock/Geb

Я провел много исследований, чтобы найти ответ на следующие вопросы, но безрезультатно.

У меня есть следующий класс в одном <div> тег в HTML.

<button type='button' class='btn btn-navbar document-collapse pull-right' data-target='#document_521f7592388723hsjd73hd' data-toggle='collapse'>

И у меня есть еще несколько классов в нескольких других <div> теги, но они используют то же имя класса.

<button type='button' class='btn btn-navbar document-collapse pull-right' data-target='#document_521f75032f23104747ed753c' data-toggle='collapse'>

По умолчанию первый <div> расширяется и все остальное <div> свернуты. Мне нужно быть в состоянии нажать на секунду и показать тебе другие кнопки и элементы управления, которые скрыты.

Я попробовал следующее, но это не сработало.

expandOrderLink(wait:true)  { $(".btn.btn-navbar.document-collapse.pull-right:nth-child(2)") }

Есть ли способ, которым мы можем найти все элементы класса с одинаковыми именами и выбрать тот, который нам нужен (в моем случае второй).

Также обратите внимание, что я не могу использовать любые другие атрибуты, так как у меня есть динамическое содержимое с зашифрованной информацией (например, #document_521f75032f23104747ed753c)

4 ответа

Решение

Ваш вопрос вводит в заблуждение тем, что вы спрашиваете о том, как выбрать элемент по индексу с помощью jQuery, но в своем примере кода вы используете Geb - я предлагаю вам изменить плитку вашего вопроса. API Geb Navigator не совместим с jQuery, он просто похож на jQuery.

Чтобы выбрать второй элемент в вашем примере, вы можете написать:

expandOrderLink(wait:true)  { 
    $(".btn.btn-navbar.document-collapse.pull-right", 1) 
}

Проверьте раздел по индексам и диапазонам в руководстве.

Вы также можете просто получить доступ к элементу, используя оператор индекса:

expandOrderLink(wait:true)  { 
    $(".btn.btn-navbar.document-collapse.pull-right")[1]
}    

Попробуй что-нибудь подобное

  $(".btn.btn-navbar.document-collapse.pull-right").eq(1);

Если вы хотите всегда выбирать второй элемент, используйте .eq(index)

  $("your classs").eq(1);

Попробуй это

$(".btn.btn-navbar.document-collapse.pull-right:eq(2)")
Другие вопросы по тегам