如何使用与Spock / Geb一起使用的jQuery选择第二个Class元素

时间:2013-11-28 12:07:12

标签: jquery jquery-selectors spock geb

我做了很多研究,找出以下答案,但无济于事。

我在HTML中的一个<div>标记中有以下类。

<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 个答案:

答案 0 :(得分:4)

尝试这样的事情

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

答案 1 :(得分:3)

您的问题是误导性的,因为您询问如何使用jQuery在索引中选择元素,但在您的代码示例中,您使用的是Geb - 我建议您更改问题的方块。 Geb的Navigator API与jQuery不兼容,它只是jQuery-like

要选择示例中的第二个元素,您可以写:

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

查看手册中indexes and ranges部分。

您也可以使用subscript operator简单地访问元素:

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

答案 2 :(得分:0)

如果要始终选择第二个元素,请使用.eq(index)

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

答案 3 :(得分:0)

试试这个

$(".btn.btn-navbar.document-collapse.pull-right:eq(2)")