2010-05-28 5 views
38

Я хотел бы добавить <li> в определенном положении, например:Как добавить список пункт на определенной позиции

<ul id="list"> 
    <li>Position 1</li> 
    <li>Position 2</li> 
    <li>Position 4</li> 
<ul> 

Давайте предположим, что я хочу, чтобы добавить новый <li> ниже/после <li>Position 2</li> , как я могу сделать это с помощью jQuery?

Я пытался сделать это, используя следующий код:

$('#list li:eq(1)').append('<li>Position 3</li>'); 

Но это не сработало, потому что он добавляет <li> внутри <li>Position 2</li>, вместо того, чтобы добавить <li> ниже/после <li>Position 2</li>.

Может ли кто-нибудь помочь?

спасибо.

ответ

67

Вы должны использовать after() вместо append():

Описание: Вставить содержимое, заданное параметром, после каждого элемента в наборе соответствующих элементов.

$('#list li:eq(1)').after('<li>Position 3</li>'); 

Документация append() ясно говорит:

содержание Вставка (...) до конца каждого элемента.


Для полноты:

Обратите внимание, что соответствует :eq(n)n-й элемент множества элементов согласования, в то время как :nth-child(n) соответствует n го ребенка родителя.

3
$('<option val="position3">Position3</option>').insertAfter('#list :nth-child(<give childnumber here>)') 

индекс начать с 1

Смежные вопросы