如何在复杂的未知级别ul li菜单中确定最后一个锚

时间:2013-02-11 20:37:06

标签: css css3 jquery-selectors css-selectors

我正在寻找一种方法来确定菜单中显示的最后一个锚点。 我试图用css赶上它,但没有用。在我的例子中,我试图将锚点写成“是”,女巫是列表中的最后一个,而不是“父母”的最后一个。

html:

<div class="container">
<ul>
    <li><a href="#">no</a></li>
    <li><a href="#">no</a></li>
    <li>
        <ul>
            <li><a href="#">no</a></li>
            <li><a href="#">no</a>
                <ul>
                    <li><a href="#">no</a></li>
                    <li><a href="#">no</a>
                        <ul>
                            <li><a href="#">no</a></li>
                            <li><a href="#">yes</a></li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
</div>
<hr/>
<div class="container">
<ul>
    <li><a href="#">no</a></li>
    <li><a href="#">no</a></li>
    <li>
        <ul>
            <li><a href="#">no</a></li>
            <li><a href="#">no</a>
                <ul>
                    <li><a href="#">no</a>
                        <ul>
                            <li><a href="#">no</a></li>
                            <li><a href="#">no</a></li>
                        </ul>
                    </li>
                    <li><a href="#">yes</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
</div>

jsfiddle:http://jsfiddle.net/u2BTz/2/

无论如何,我会接受jQuery解决方案,任何帮助以css 来确定范围都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

Diodeus的答案是正确的,但如果你想利用last(),你必须实施两步匹配操作:

$(".container").each(function() {
    $(this).find("a").last().css("background-color", "red");
});

否则,无论容器如何,所有<a>元素都将匹配,last()将返回最后一个元素。

答案 1 :(得分:1)

忘记图层,只需直接选择锚标记即可。

$('.container a').last().css('background-color', 'red');