如何在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”。
答案 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'));
})
prevAll获取匹配元素集中每个元素的所有前面的兄弟,可选择由选择器过滤。
eq(0)只获取第一个元素。
答案 2 :(得分:0)
请改为尝试:
$(".ddd").click(function(){
alert($(this).prev(':visible').attr('class'));
})
这使用jQuery :visible选择器来查找可见的元素。