2016-01-24 3 views
3

Как я могу вставить что-то после второй формы с mform класса, для этой разметки:Как вставить после 2-го элемента?

<table id="sortme"> 
    <tr> 
    <td>1</td> 
    <td><form class="mform"></form></td> 
    </tr> 
    <tr> 
    <td>2</td> 
    <td><form class="mform"></form><!---Insert Me here !---></td> 
    </tr> 
    <tr> 
    <td>3</td> 
    <td><form class="mform"></form></td> 
    </tr> 
</table> 

Чтобы вставить после первой формы, я могу использовать:

$(function() { 
$('<div>block</div>').insertAfter("#sortme form.mform:first"); 
}); 

поэтому я попытался это код для второго, не получилось:

$(function() { 
$('<div>block</div>').insertAfter("#sortme > form.mform:nth-child(2)"); 
}); 

ответ

3

Попробуйте .insertAfter("#sortme form.mform:eq(1)");

+0

спасибо, ваше первое предложение работал, второй один не менее, в чем разница? – rockyraw

+0

@rockyraw - Не уверен, я тестирую его на codepen –

+0

@rockyraw - тот, который я удалил, не будет работать, просто понял, что –

1

Вы, также, можете использовать counter, условный оператор и append следующим образом:

<script> 
    $(document).ready(function(){ 
     counter = 0; 
     $(".mform").each(function(){ 
     if (counter === 1){ 
      $(this).append("<div>Block</div>"); 
     } 
     counter++; 
     }); 
    }); 
    </script> 

Демонстрационный является HERE

+1

FYI. Вы также можете получить текущий индекс, передав его в '.each() 'callback function (' $ (". mform"). each (function (index) {') - и проверить' if (index === 1) ' –

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