2015-11-27 2 views
-2

Я хочу добавить элемент к другому элементу. Проблема в том, что «целевой элемент» идентифицируется только классом, и этот класс используется дважды. В моем случае я хочу добавить к последнему/второму присутствию элемента. Проверить скрипку здесь для визуализацииДобавить элемент во второе присутствие класса HTML

JSFiddle

Начальная точка:

<div class="container"> 
    <div class="myClass">This is a <strong>not</strong> the target</div> 
    <div class="myClass">This is the target</div> 
</div> 
<div class="container2"> 
    <div class="source">This is the source</div> 
</div> 

Гол

<div class="container"> 
    <div class="myClass">This is a <strong>not</strong> the target</div> 
    <div class="myClass">This is the target 
      <div class="source">This is the source</div> 
    </div> 
</div> 
<div class="container2"> 
    <!-- Big beautiful hole of emptiness --> 
</div> 

То, что я пытался

$(".source").appendTo(".myClass"); 

Что добавляет «.source» в оба div с классом «.myClass».

+0

Вы можете использовать $ (". Container div"). Eq (0) .append (". MyClass") –

+0

Ваш вопрос непонятен. Вы хотите «добавить к» или «вставить после» ??? Или вы допустили ошибку в ожидаемой HTML-разметке? –

+0

Пожалуйста, не добавляйте «Разрешено» к названию вопроса. Просто примите правильный ответ. Обратитесь к этой статье, пожалуйста: http://stackoverflow.com/help/someone-answers –

ответ

3

Вы можете использовать :last селектор:

$(".source").appendTo(".myClass:last"); 

Updated fiddle

+1

Или '$ (". Source "). AppendTo (". MyClass: nth-of-type (2) ");' для второго. –

3

По вашим целям, вы хотите разместить свой товар после последним myClass, а не внутри него.

<div class="container"> 
    <div class="myClass">This is a <strong>not</strong> the target</div> 
    <div class="myClass">This is the target</div> 
    <div class="source">This is the source</div> 
</div> 

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

<div class="container"> 
    <div class="myClass">This is a <strong>not</strong> the target</div> 
    <div class="myClass"> 
    This is the target 
    <div class="source">This is the source</div> 
    </div>  
</div> 

Для того, чтобы поместить элемент после другого, как в вашей цели, используйте insertAfter:

$(".source").insertAfter(".myClass:last"); 

Проверьте this demo вне.

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