0

私のコード: http://codepen.io/anon/pen/ABrDe

「li」の「a」要素をクリックすると、「アクティブな」クラスと右側の矢印が表示されます(JS部分に書いた「スパン」を使用)。「アクティブ」部分は問題ありませんが、矢印部分と混同しています。「a」ではなく「li」を選択する必要があると思います。しかし、私は「アクティブ」クラスだけを「a」に与えます。「アクティブなクラスを持つ「a」の親である「li」を選択するにはどうすればよいですか?

4

6 に答える 6

2

jQuery セレクター:

$("a").parent("li").hasClass("active");
于 2013-03-20T13:46:33.380 に答える
0

これを参照してください:フィドル

 $("#resp-list a").click(function () {
     $(this).parent().siblings().find('a').removeClass("active");
     $(this).addClass("active"); 
     $(this).parent().add('<span class="fr arrow-right"></span>');
 });
于 2013-03-20T13:50:56.547 に答える
0

メソッドを使用しparentます。

$("#resp-list a").click(function () {
     var _this=$(this);
     var parentItem=_this.parent();

    //do whatever you want with the parent.
});

appendまた、メソッドを使用してスパンをliに追加する必要がある場合もあります。

于 2013-03-20T13:47:20.020 に答える
0

次の方法で親オブジェクトを取得します。

var parent = $(this).parent();

したがって、あなたの場合、親 jQuery オブジェクトは次の DOM で保持されます。

<li>
    <a href="#">Test ...</a>
</li>

また、スコープ内で 1 回だけオブジェクトを jQuery でラップすることを常にお勧めします。したがって、セレクターを複数回使用する場合は、変数に保存してください。

var $this = $(this);
var $parent = $this.parent();
于 2013-03-20T13:47:33.297 に答える
0

フィドルを編集して、期待どおりに動作するようにしました。

http://cdpn.io/ABrDe

    $("#resp-list > li").on('click', 'a', function () {
        $("#resp-list > li > a").removeClass('active');
        $(this).addClass("active"); 
        $(this).parent().prepend('<span class="fr arrow-right"></span>');
   });
于 2013-03-20T13:53:37.450 に答える
0

check out this...

http://jsfiddle.net/qdZxQ/

$(document).ready(function(){ $("#resp-list a").click(function () {

    $("#resp-list a").removeClass("active");
    $(this).addClass("active"); 
    if($(this).hasClass("active")){
        $("#resp-list a span").remove();
        $(this).append('<span class="fr arrow-right"></span>');
    }
 });

});

Hope this is what u expect.

于 2013-03-20T14:16:25.653 に答える