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

时间:2012-06-14 12:40:27

标签: javascript jquery

如何在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()中删除“display:visible”,则会显示“ccc”。

http://jsfiddle.net/WaVrw/

3 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:1)

您可以使用:

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

DEMO

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

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

答案 2 :(得分:0)

请改为尝试:

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

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