Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Перемещение элемента внутри блока (https://javascript.ru/forum/events/69890-peremeshhenie-ehlementa-vnutri-bloka.html)

milkman 25.07.2017 19:27

Перемещение элемента внутри блока
 
здравствуйте, у меня есть div блоки в которых есть несколько элементов, в некоторых блоках есть один элемент который стоит предпоследним, и его поставить на последнее место. Вот пример

<div class="block">
    <p>текст</p>
    <p>текст</p>
    <div>текст</div>
</div>

<div class="block">
    <p>текст</p>
    <p>текст</p>
    <iframe></iframe>/*этот элемент надо перенести под блок с классом src
    <div class="src"></div>
</div>


Вот так я пытался это сделать
if ($(".block>iframe").length){
	$(".src").after($(".block>iframe"));
}


Всё переносится, но в добавок iframe добавляется во все блоки с классом .block. Подскажите как сделать так, что бы перемещение происходило только в тех блоках в которых iframe присутствует.

j0hnik 25.07.2017 19:46

$(".block").has("iframe").append($(".block>iframe"));

milkman 25.07.2017 19:55

Цитата:

$(".block").has("iframe").append($(".block>iframe" ));
Теперь копирует iframe из всех .block и вставляет, то есть если есть2 блока в которых есть iframe то код получается такой:

<div class="block">
    <p>текст</p>
    <p>текст</p>    
    <div class="src"></div>
    <iframe></iframe>
    <iframe></iframe>
</div>
<div class="block">
    <p>текст2</p>
    <p>текст2</p>    
    <div class="src"></div>
    <iframe></iframe>
    <iframe></iframe>
</div>

j0hnik 25.07.2017 20:34

[].forEach.call(document.querySelectorAll('.block>iframe'), function(el) {
el.parentNode.appendChild(el);
});


или

$('.block>iframe').each(function(){
	$(this).parent().append($(this));
});

milkman 25.07.2017 21:01

Большое спасибо) пока вроде работает)


Часовой пояс GMT +3, время: 01:00.