So why is this? Very confused...Thanks!
$('#navigation ul li a:first').index($('#navigation ul li a')) >> returns 0 expect 0
$('#navigation ul li a:last').index($('#navigation ul li a')) >> returns -1 expect 19
$('#navigation ul li a').eq(2).index($('#navigation ul li a')) >> returns -1 expect 2
UPDATE: here are some html, it's my pagination code:
<div id="navigation">
<ul>
<li><a class="current" href="#1-1">1</a></li>
<li><a class="" href="#1-2">2</a></li>
<li><a class="" href="#1-3">3</a></li>
<li><a class="" href="#1-4">4</a></li>
<li><a class="" href="#1-5">5</a></li>
<li><a class="" href="#1-6">6</a></li>
<li><a class="" href="#1-7">7</a></li>
<li><a class="" href="#1-8">8</a></li>
<li><a class="" href="#1-9">9</a></li>
<li><a class="" href="#1-10">10</a></li>
<li><a class="" href="#1-11">11</a></li>
<li><a class="" href="#1-12">12</a></li>
<li><a class="" href="#1-13">13</a></li>
<li><a class="" href="#1-14">14</a></li>
<li><a class="" href="#1-15">15</a></li>
<li><a class="" href="#1-16">16</a></li>
<li><a class="" href="#1-17">17</a></li>
<li><a class="" href="#1-18">18</a></li>
<li><a class="" href="#1-19">19</a></li>
<li><a class="" href="#1-20">20</a></li>
</ul>
</div>
You need to reverse your selectors:
alert($('#navigation ul li a').index($('#navigation ul li a:first'))); // 0
alert($('#navigation ul li a').index($('#navigation ul li a:last'))); // 19
alert($('#navigation ul li a').index($('#navigation ul li a').eq(2))); // 2
SEE DEMO
-1 means that element wasn't found by index()
try indexing the list items instead of anchors as they are on the same level
var listItems = $('#navigation ul li');
$('#navigation ul li:first').index(listItems);
$('#navigation ul li:last').index(listItems);
$('#navigation ul li').eq(2).index(listItems);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With