Как правило, структуры, подобные ArrayLists
, реализуются старым добрым массивом, определенным внутри класса и не доступным напрямую за пределами класса.
Определенный объем пространства первоначально выделяется для списка, и когда вы добавляете элемент, размер которого превышает размер массива, массив будет повторно инициализирован с новой емкостью (которая обычно несколько кратна текущей размер, поэтому каркас не постоянно перераспределяет массивы с каждой новой добавленной записью).
This should do it:
var index = $("#tabs ul li").index($("li:has(a[href='#All'])"));
instead of all
s you wanted to get the index out of.
element :has a link with what you want by using the :has
selector, otherwise the matched element will be the
itself instead of the
.Tested the above and it gives me the correct answer, 3, as the index is 0-based.
Я думаю, это потому, что ваше первое правило соответствует всем элементам UL, когда вы хотите, чтобы оно соответствовало всем элементам LI. Попробуйте:
$("#tabs ul li").index($("li a[href='#All']"))
Вы хотите получить индекс элемента внутри другого контекста как часть набора элементов. См. index () в документации API для получения дополнительной информации, в частности примеров.
<script type="text/javascript">
$(document).ready(function(){
var which_index = $("#tabs ul li a").index($("a[href='#All']"));
alert(which_index);
});
</script>
<body>
<div id="tabs">
<ul>
<li><a href="#CPU"><span>CPU</span></a></li>
<li><a href="#Pickup"><span>Pickup</span></a></li>
<li><a href="#Breakfix"><span>Breakfix</span></a></li>
<li><a href="#All"><span>All</span></a></li>
</ul>
</div>
</body>