1

だから私は順不同のリストを持っています。リスト内の各アイテムには、投稿コメントのテキストエリアを切り替えると思われるボタンがあります。残念ながら、1 つの [コメントの投稿] ボタンをクリックすると、すべてのテキストエリアが開いた最初の試みで、これを使用して 1 つの要素のみが選択されていることを確認しようとしました。コードは次のとおりです。

<ul class="todosDisplay">
 <li><span>Content of todo</span><a class="postComment">Post Comment</a>
     <textarea class="showMe"></textarea>
 </li>
<li><span>Content of todo</span><a class="postComment">Post Comment</a>
     <textarea class="showMe"></textarea>
 </li>
<li><span>Content of todo</span><a class="postComment">Post Comment</a>
     <textarea class="showMe"></textarea>
 </li>
 </ul>

そして、ここに私のjqueryコードがあります

$(".postComment").click(function () { 
          $(this).parent().find(".showMe").toggle();
        });

あなたが見ることができるように、ACTUAL要素の親に到達しようとする私のかわいそうな男が、トグルする必要がある要素を見つけようとしてもうまくいきません:)

よろしくお願いします!

4

3 に答える 3

1

jQuery の $.closest(".showMe") 関数を使用できます。

于 2009-10-07T18:02:10.300 に答える
0

これをVisualStudioでビルドしただけで、機能しているようです。上記の例で私が気付いた唯一のことは、アンカータグからhrefが欠落しているため、IEがそれらをリンクとしてレンダリングしないことでした。href = "#"を追加しましたが、あなたのコードはうまくいったようです。リンクをクリックすると、テキストエリアが正しく閉じられます。

<script type="text/javascript">
    $(document).ready(function() {

        $(".postComment").click(function() { $(this).parent().find(".showMe").toggle(); });

    });
</script>

<ul class="todosDisplay">
    <li><span>Content of todo</span><a class="postComment" href="#">Post Comment</a>
        <textarea class="showMe"></textarea>
    </li>
    <li><span>Content of todo</span><a class="postComment" href="#">Post Comment</a>
        <textarea class="showMe"></textarea>
    </li>
    <li><span>Content of todo</span><a class="postComment" href="#">Post Comment</a>
        <textarea class="showMe"></textarea>
    </li>
</ul>
于 2009-10-07T18:08:06.133 に答える
0

jQuery を次のように変更することをお勧めします。

$(".postComment").click(function(){ 
   $(this).siblings(".showMe").toggle();
   return false;
});
于 2009-10-07T23:57:16.583 に答える