Простой плагин jQuery ( небольшой набор тестов ), который позволяет добавлять элементы с любым индексом, включая 0.
$.fn.insertAt = function(index, $parent) {
return this.each(function() {
if (index === 0) {
$parent.prepend(this);
} else {
$parent.children().eq(index - 1).after(this);
}
});
}
Предполагая, что у нас есть следующий HTML:
<ul id="items">
<li>A</li>
</ul>
Тогда вставка элемента с индексом 0 $('<li>C</li>').insertAt(0, $('#items'))
приведет к
<ul id="items">
<li>C</li>
<li>A</li>
</ul>
Вставка другого элемента, на этот раз с индексом 1 $('<li>B</li>').insertAt(1, $('#items'))
, дает
<ul id="items">
<li>C</li>
<li>B</li>
<li>A</li>
</ul>
Отказ от ответственности: нет обработки ошибок входных параметров. Если index
отрицательно или больше длины детей или index
не является числом, поведение более или менее не определено. Если $parent
не является объектом jQuery, insertAt
завершится ошибкой.