0

こんにちは、ul と li の使用リストがあります。

<span class="important">Show/Hide</span>

<div id="important" class="hidden">
    <ul class="sub">
     <li>
            Value one
        </li>
        <li class="child">
            <img src="../img/close.png" />
        </li>
    </ul>
</div>

$(".important").click(function () {
  $("#important").slideToggle("fast");
});

子 (class="child") をクリックすると、div (id="important") が上にスライドするはずですが、別の ID を持つリストが他にもあります。クリックした

これは私がしました:

$(".child").click(function () {
  $(".child < div").slideUp("fast");
});

私はそれを機能させる方法がわかりません。他の組み合わせを行ったことがありますが、できないようです。

4

3 に答える 3

3

.closest()このように、を使用してそれを行うことができます

$(".child").click(function() {
  $(this).closest("div").slideUp();
});

これは、.childクリックした<div>先祖から上に移動し、上にスライドします。子と親の間に他の div がある場合は、次のように、閉じたいクラスを指定し、最も近い呼び出しをその特定の を探すように変更することを勧め<div>します。 <div>

$(".child").click(function() {
  $(this).closest("div.classToClose").slideUp();
});
于 2010-05-08T15:02:59.427 に答える
1

私はparent()セレクターを使用します。これは、このようにsthを作成するための最良の(私の意見)方法です:)

于 2010-05-08T17:17:58.047 に答える
0

「:parent」セレクターが必要だと思います。あなたの場合は次のようになります。

$(".child:parent").slideUp("速い");

他のセレクターについては、http: //api.jquery.com/category/selectors/をご覧ください。

于 2010-05-08T15:06:08.953 に答える