addClass到父(LI)

时间:2013-10-05 19:56:55

标签: jquery addclass

我有一个元素“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));

我做错了什么?

3 个答案:

答案 0 :(得分: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()将获得与选择器匹配的第一个元素。

答案 1 :(得分: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>

答案 2 :(得分:0)

试试这个:

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

可能是您没有选择目标父母