如何在jquery父父类中访问?

时间:2012-03-28 15:52:22

标签: jquery

我希望在页面加载时删除li标签的类...

HTML:

    <ul class="NewsArchive">
               <li class="off">
                    <a href="#" class="year">T's Blog</a>                
                        <ul class="NewsMonths" style="display: block; ">
                                   <li class="off">
                                    <a href="#" class="month">July 2011</a>              
                                        <ul class="BlogsArt" style="display: block; ">
                                               <li class="turnedon">
                                                   What's in a surname?
                                              </li>
                                    </ul>
                               </li>
</ul>
</li>
<li class="off">
                <a href="#" class="year">Steve's Blogs</a>                
                    <ul class="NewsMonths">
                               <li class="off">
                                <a href="#" class="month">February 2012</a>              
                                    <ul class="BlogsArt">
                                            <li>
                                                A bright note
                                            </li>
                                </ul>
                          </li>
                    </ul>  
           </li>
</ul>

我想要的是对于其父母李类“off”已经“转身”的李被移动。所以顶级课程。如果这有意义吗?

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题。

$(function()
{
    $('li.turnedon').closest('li.off').removeClass('off');
});

如果包含父类off,则会删除它。

$(function()
{
    $('li.turnedon').parents('li.off').removeClass('off');
});

答案 1 :(得分:0)

只需使用$.parent()$.removeClass - 简单...如果您想删除所有父母(递归),您可以使用类似

的内容
var parent = $.parent(); // this needs to be called for the correct li object
do { 
    parent.removeClass('off')
    parent = parent.parent();
} while ( parent )