4

要素「A」があり、それをクリックすると、親要素の ( LI) クラスをに変更したいのですselectedが、何も変わりません...

$(".filters-list li a").click(function () {
    $(".filters-list li").removeClass("selected");
    $(this).parent('li').addClass('selected'); // I also tried .parent().addClass
});

次に、このコードを試しました:

$(".filters-list li a").click(function () {
    $(".filters-list li").removeClass("selected");
    $(this).parent().get(0).addClass('selected'); // IE reports something like this: Object doesn't support addClass...
});

LIこのコードで定義しようとすると、次のように報告されました[Object HTMLLIElement]

alert($(this).parent().get(0));

私が間違っていることは何ですか?

4

3 に答える 3

9

試す

$(".filters-list li a").click(function (e) {
    e.preventDefault();
    $(".filters-list li").removeClass("selected");
    $(this).closest('li').addClass('selected'); // I also tried .parent().addClass
});

.closest()は、セレクターに一致する最初の要素を取得します。

于 2013-10-05T19:57:57.077 に答える
2

私はあなたのためにサンプルを作りました:

<script type="text/javascript" src="http://codeorigin.jquery.com/jquery-1.10.2.min.js"></script>
    <style>
        .selected {font-weight:bold}
    </style>
    <ul class="filters-list">
        <li class="selected"><a href="#section1">About</a></li>
        <li><a href="#section2">Gallery Photos</a></li>
        <li><a href="#section3">Contact</a></li>
    </ul>

<script type="text/javascript">
$(document).ready(function(){
    $(document).on("click",".filters-list li a", function () {
        $(".filters-list li").removeClass("selected");
        $(this).parent().addClass("selected");
    });
});
</script>
于 2013-10-06T02:23:28.513 に答える
0

これを試してください:

$(this).parents("li:first").addClass('selected');

ターゲットの親を選択していない可能性があります

于 2013-10-05T20:02:32.907 に答える