Для разметки типа
<div id="holder">
<div>div 1</div>
<div>div 2</div>
<div>div 3</div>
<div>div 4</div>
</div>
как добавить некоторую разметку после второго DIV?
Спасибо,
Titel
Для разметки типа
<div id="holder">
<div>div 1</div>
<div>div 2</div>
<div>div 3</div>
<div>div 4</div>
</div>
как добавить некоторую разметку после второго DIV?
Спасибо,
Titel
Попробуйте селектор CSS :nth-child()
:
$("#holder > div:nth-child(2)").after("<div>foobar</div>");
См. также пример на странице jQuery селектора :nth-child()
.
используйте селектор : eq (index) или : nth-child (index/четное/нечетное/уравнение) в сочетании с append (content) или after (content) функция.
например, предполагая этот код:
<div id="holder">
<div>div 1</div>
<div>div 2</div>
<div>div 3</div>
<div>div 4</div>
</div>
при использовании append like this $("#holder>div:eq(1)").append("<div>inserted div</div>");
или этот $("#holder>div:nth-child(2)").append("<div>inserted div</div>");
даст вам
<div id="holder">
<div>div 1</div>
<div>div 2<div>inserted div</div></div>
<div>div 3</div>
<div>div 4</div>
</div>
, а при использовании after like $("#holder>div:eq(1)").after("<div>inserted div</div>");
или этот $("#holder>div:nth-child(2)").after("<div>inserted div</div>");
даст вам
<div id="holder">
<div>div 1</div>
<div>div 2</div>
<div>inserted div</div>
<div>div 3</div>
<div>div 4</div>
</div>
Использование: nth-child может быть полезным, поскольку оно позволяет вам устанавливать содержимое для каждого n элементов. также индекс: nth-child начинается с 1, а индекс: eq начинается с 0
например, использование
$("#holder>div:nth-child(2n)").after("<div>inserted div</div>");
даст вам
<div id="holder">
<div>div 1</div>
<div>div 2</div>
<div>inserted div</div>
<div>div 3</div>
<div>div 4</div>
<div>inserted div</div>
</div>
$("#holder div:eq(1)")
выберет второй дочерний div из #holder
div. (: информация о выборе eq()). Затем используйте функцию .after()
для добавления содержимого.
Использовать insertAfter (селектор)
используйте этот
$("ul li:nth-child(4n)").add('ul li:last').after("<div style='clear:both;'> </div>");
Попробуйте это так:
$("#holder > div:nth-child(2n)").after("<div>insert here</div>");
Он вставит <div>insert here</div>
после каждого второго ряда:
$("#holder > div:nth-child(2)").after("<div>insert here</div>");