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() から「display: visible」を削除すると、「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 に答える