如何针对倒数第二个孩子的孩子?

时间:2015-06-12 21:05:31

标签: javascript jquery html

我有像这样的HTML

<ul class="menu">
    <li>
        <a href="#1"></a>
    </li>
    <div></div>
    <li>
        <a href="#2"></a>
    </li>
    <div></div>
    <li>
        <a href="#3"></a>
    </li>
    <div></div>
    <li>
        <a href="#4"></a>
    </li>
    <div></div>
</ul>

我想定位最后一个链接(#4)并将其存储到名为tab的变量中。这是我写的,但我知道这是错的

var tab = $(".menu").is(":nth-last-child(2)").children().attr("href");

2 个答案:

答案 0 :(得分:3)

如果您想要倒数第二个孩子的锚点,请执行

var children = $('.menu').children();
var childCount = $('.menu').children().length;
var secondToLast = children[childCount - 2];

var anchor = $(secondToLast).find('[href]');
var href = anchor.attr('href');

&#13;
&#13;
var children = $('.menu').children();
var childCount = $('.menu').children().length;
var secondToLast = children[childCount - 2];

var anchor = $(secondToLast).find('[href]');
var href = anchor.attr('href');
console.log(href);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<ul class="menu">
    <li>
        <a href="#1"></a>
    </li>
    <div></div>
    <li>
        <a href="#2"></a>
    </li>
    <div></div>
    <li>
        <a href="#3"></a>
    </li>
    <div></div>
    <li>
        <a href="#4"></a>
    </li>
    <div></div>
</ul>
&#13;
&#13;
&#13;

否则,如果你想要最后一个锚,无论如何

var lastAnchor = $('a:last');
var href = lastAnchor.attr('href');

&#13;
&#13;
var lastAnchor = $('a:last');
var href = lastAnchor.attr('href');
console.log(href);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<ul class="menu">
  <li>
    <a href="#1"></a>
  </li>
  <div></div>
  <li>
    <a href="#2"></a>
  </li>
  <div></div>
  <li>
    <a href="#3"></a>
  </li>
  <div></div>
  <li>
    <a href="#4"></a>
  </li>
  <div></div>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

这将选择第二个到最后一个li元素的a标记

$('.menu').find('li:nth-last-child(2) a')

如果每个a有多个li代码,您可以通过向a添加a来指定所需的nth-child个孩子。例如,要使用您将使用的倒数第二个a来抓取第一个li标记:

$('.menu').find('li:nth-last-child(2) a:nth-child(1)')

这是一个通过修改背景颜色来展示选择的小提琴

https://jsfiddle.net/779zynLv/