0

非表示になっているリストアイテムを選択しようとしていますが、スライドトグルメソッドで表示できます。

これがHTMLです

<ul>
  <li>item 1</li>
  <li>item 2</li>
  <li id="par1">parent 1</li>
    <ul id="par1list">
      <li>items to select1</li>
      <li>items to select2</li>
      <li>items to select3</li>
    </ul>
  <li id="par2">parent 2</li>
    <ul id="par2list">
      <li>items to select1</li>
      <li>items to select2</li>
      <li>items to select3</li>
    </ul>
</ul>

jqueryでは、サブ親リスト(par1listとpar2list)を非表示にしていますが、親1または親2がクリックされると、スライドトグルします。これがjqueryです:

$(document).ready(function(){
    $("#par1list, #par2list").hide(); //hide elements

    $("#par1").click(function() {
        $("#par1list").slideToggle(400); //click parents to show hidden elements
    });
    $("#par2").click(function() {
        $("#par2list").slideToggle(400); //click parents to show hidden elements
    });

    $("#par1list > li").click(function(){  //select list item from previous hidden ul
        this.css('color', 'red');
    });
});

ul par1からリストアイテムを選択しようとしていますが、わかりません。ありがとう!

4

2 に答える 2

3

私が正しく理解していれば、$(this)代わりに使用する必要がありますthis

デモ

$("#par1list > li").click(function(){  //select list item from previous hidden ul
    $(this).css('color', 'red');
});
于 2012-05-09T21:25:38.263 に答える
0

これにはすでに良い答えがあることは知っていますが、なぜそのように機能するのかについての説明を追加したいと思います。「これ」はDOM要素です。「hello」のように、jQueryを使用して操作するには、最初に$(this)を実行してjQueryオブジェクトでラップする必要があります。

これがお役に立てば幸いです。

于 2012-05-17T08:16:56.650 に答える