2012-05-09 89 views
1

方面我有一些标记,像这样:只选择某一类的最后一个孩子在父母

<li> 
    <span> 
    <div> 
     <a href="#" class="anchor menu-active">Afghanistan</a> 
     <div class="container menu-visible"></div> 
    </div> 
    </span> 
    <span> 
     <div> 
     <a href="#" class="anchor">Kabul(AFT)</a> 
     <div></div> 
     </div> 
    </span> 
</li> 

我希望在li而言,选择与类anchor的最后一个元素。结果是应该选择<a href="#" class="anchor">Kabul(AFT)</a>li内的anchor类可以有任意数量的元素。

我想出了这个选择器:li .anchor:last-of-type,但它选择了那里的两个元素。

如何选择anchor类的绝对最后一个元素?

+0

您不能使用CSS选择具有某个类的DOM中绝对最后一个元素。将来你可以选择最后一个具有某个类的孩子,但不能选择最后一个元素,而不考虑结构。 – BoltClock

回答

0

我结束了使用JavaScript来解决该问题作为裙用干净的CSS选择器基础的解决方案是不可能的。

最初,该计划是抓住最后的.anchor并得到它的xy坐标来计算覆盖图的一组坐标。

解决的办法是获得父母的坐标li,得到它的高度,然后进行计算。

不像CSS选择器一样整齐,但它的工作原理。

0

我没有看到您列出的项目,似乎你把所有的项目放在同一个李。

你为什么不使一个子列表:

<li> 
    <a href="#">Afghanistan</a> 
    <ul> 
    <li> 
     <a href="#">Kaboul(AFT)</a> 
    </li> 
    </ul> 
</li> 

如果您想获得最后一个选择,那么你使用最后一子。如果你想与特定的类来获得最后一个元素,然后

.anchor:{}类型最后的-

是正确的选择。

There is this post too.

+0

不幸的是,我无法修改由后端和其他库生成的标记。我的问题里的'li'实际上是在'ul'内,但是当我使用YUI时,我从问题中的标记中运行这个选择。 – F21

+0

问题是,需要与.anchor类区分的选择器与其他选择器分开,因此浏览器将读取每个项目作为最后一个项目,如[jsfiddle示例]中所示(http://jsfiddle.net/8XewF /)。你真的不能超越模板? –

+0

不,':last-of-type'选择它的类型的最后一个元素,而不是它的类。 – BoltClock

相关问题