1

如何在 prev() 中使用正则表达式?

<div class="aaa">aaa</div>
<div style="display: none" class="bbb">bbb</div>
<div style="display: none" class="ccc">ccc</div>
<div class="ddd">ddd</div>
$(".ddd").click(function(){
    alert($(this).prev('display:visible').attr('class'));
})

这不起作用。如果我有:

这应该告诉我“aaa”。如果我从 prev() 中删除“显示:可见”,那么这会显示“ccc”。

http://jsfiddle.net/WaVrw/

4

3 回答 3

2

试试这个 :

$(".ddd").click(function(){
    alert($(this).prevAll("div:visible:eq(0)").attr("class"));
});
于 2012-06-14T12:47:04.387 回答
1

您可以使用:

$(".ddd").click(function(){
    alert($(this).prevAll(':visible:eq(0)').attr('class'));
})

演示

prevAll获取匹配元素集中每个元素的所有前面的兄弟,可选地由选择器过滤。

eq(0)仅获取第一个元素。

于 2012-06-14T12:50:46.697 回答
0

试试这个:

$(".ddd").click(function(){
    alert($(this).prev(':visible').attr('class'));
})

这使用 jQuery :visible选择器来查找可见的元素。

于 2012-06-14T12:41:38.747 回答