С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
244 / 221 / 31
Регистрация: 18.02.2010
Сообщений: 2,269
1

Как скопировать всё содержимое тега (включая другие теги и их содержимое) и вставить внутрь другого тега

30.06.2018, 19:46. Показов 4289. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пробовал .clone
Javascript
1
$(".la_desktop").clone().appendTo(".la_mobile");
HTML:



HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<div class="l_articles la_desktop">
        <span class="c_head">Статьи</span>
        <div class="la_item">
            <a href="">ИНТЕНСИВНАЯ ТЕХНОЛОГИЯ ВЫРАЩИВАНИЯ КАПУСТЫ БЕЛОКОЧАННОЙ И
КРАСНОКОЧАННОЙ</a>
            <img src="images/art_1.jpg" alt="">
            <span>По своей сути рыбатекст является альтернативой традиционному lorem ipsum, который вызывает у некторых людей недоумение при попытках прочитать рыбу текст. </span>
        </div>
        <div class="la_item">
            <a href="">Болезни огурцов, кабачков, арбузов и 
других тыквенных.</a>
            <img src="images/art_2.jpg" alt="">
            <span>По своей сути рыбатекст является альтернативой традиционному lorem ipsum, который вызывает у некторых людей недоумение при попытках прочитать рыбу текст. </span>
        </div>
    </div>
 
...........
 
 
 
<div class="la_mobile"></div>



Но эта зараза всё обрабатывает в реальном времени + копирует ни только теги и их содержимое, но ещё и их свойства. И когда у меня на брекпойнте происходит вот такой фокус:

CSS
1
2
3
4
5
6
7
8
9
10
@media only screen and (max-width : 900px){
.la_desktop{
    display: none;
}
.la_mobile{
    display: block;
}
 
 
}
То .la_mobile тоже всё затирается, т.к. я понял клонирование уже происходит с пустоты. А мне надо при загрузке документа один раз скопировать содержимое, и всё, причём в случае с мобильными устройствами .la_desktop уже будет скрыт, но из него надо всё скопировать и поместить в .la_mobile что бы всё там уже лежало.
0
Лучшие ответы (1)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
30.06.2018, 19:46
Ответы с готовыми решениями:

Как узнать содержимое указанного тега?
Как сделать подобное в коде ниже, только работающий вариант? var p =...

Как изменить содержимое тега через объектную модель документа?
Надо с помощью javascript изменить содержимое произвольного тэга: Пример: &lt;tag&gt;содержимое&lt;/tag&gt;,...

Смогу ли я получить доступ к переменной данного тега из другого тега script?
если я в одном теге script объявлю переменную с именем mymap,то смогу ли я получить доступ к этой...

Определить содержимое XML тега
сервер присылает ответ в виде XML. Нужно определить текст в XML теге, например из...

6
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
30.06.2018, 20:13 2
Лучший ответ Сообщение было отмечено Thisman как решение

Решение

Если почитать оф. документацию, то можно понять, что метод clone копирует не содержимое тега, а сам тег вместе с его внутренностями, поэтому в итоге после клонирования у вас получается:

HTML5
1
2
3
<div class='la_mobile'>
   <div class='la_desktop'>...</div>
</div>
В вашем случае можно клонировать объект, менять ему класс на нужный и вставлять в контейнер, где уже находился .la_desktop

Javascript
1
2
3
4
5
const container = document.body; // или ваш собственный тэг
$(".la_desktop").clone()
    .appendTo(container)
    .removeClass('la_desktop')
    .addClass('la_mobile');

Пример в фидле


Замечу, что это очень долгая и дорогая операция ( особенно, если у вас в la_desktop лежит целый сайт ). Зачем вам такие ухищрения, возможно вашу задачу можно решить более оптимизированным путем
1
244 / 221 / 31
Регистрация: 18.02.2010
Сообщений: 2,269
30.06.2018, 20:58  [ТС] 3
la_desktop это часть боковой панели статей, контент которой у "Васи дизайнера" в мобильной версии перемещается из левого блока в конец основного контента, т.е. по коду перепрыгивая весь контентный блок и вообще перепрыгивая в другой контейнер. На css кроме как позиционированием + нижним падингом статьи туда не зафигачишь, а фигачить позиционированием нельзя т.к. высота статей динамическая (могут новые статьи добавляться). Сделал короче по тупому через ".appendTo", вроде работает, уж насколько сейчас это напряжная операция сказать сложно.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 <div class="la_desktop">
    <div class="l_articles">
        <span class="c_head">Статьи</span>
        <div class="la_item">
            <a href="">ИНТЕНСИВНАЯ ТЕХНОЛОГИЯ ВЫРАЩИВАНИЯ КАПУСТЫ БЕЛОКОЧАННОЙ И
КРАСНОКОЧАННОЙ</a>
            <img src="images/art_1.jpg" alt="">
            <span>По своей сути рыбатекст является альтернативой традиционному lorem ipsum, который вызывает у некторых людей недоумение при попытках прочитать рыбу текст. </span>
        </div>
        <div class="la_item">
            <a href="">Болезни огурцов, кабачков, арбузов и 
других тыквенных.</a>
            <img src="images/art_2.jpg" alt="">
            <span>По своей сути рыбатекст является альтернативой традиционному lorem ipsum, который вызывает у некторых людей недоумение при попытках прочитать рыбу текст. </span>
        </div>
    </div>
</div>
HTML5
1
<div class="la_mobile"></div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//articles mobile migrate (900px)
function checkWinWidth(hq) {
    if (hq.matches) {
        $(window).scroll(function() {
            $(".l_articles").appendTo(".la_mobile");
        }).scroll();
 
    } else {
 
        $(window).scroll(function() {
                $(".l_articles").appendTo(".la_desktop");
        }).scroll();
    }
}
var hq = window.matchMedia("(max-width: 900px)");
hq.addListener(checkWinWidth);
checkWinWidth(hq);
0
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
30.06.2018, 21:51 4
Цитата Сообщение от Mailo Посмотреть сообщение
la_desktop это часть боковой панели статей, контент которой у "Васи дизайнера" в мобильной версии перемещается из левого блока в конец основного контента,
Можно попробовать поэкспериментировать с display:flex

HTML5
1
2
3
4
  <div class='container'>
    <div class='content'></div>
    <div class='sidebar'></div>
  </div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.container {
  display: flex;
  flex-direction: row-reverse;
  width: 100%;
}
 
.content {
  width: 80%;
  height: 500px;
  background: #333;
}
 
.sidebar {
  width: 20%;
  background: red;
  height: 500px;
}
 
@media only screen and (max-width : 900px){
  .container{
      display: block;
  }
  
  .sidebar {
    width: 100%;
  }
}
0
244 / 221 / 31
Регистрация: 18.02.2010
Сообщений: 2,269
30.06.2018, 22:34  [ТС] 5
Ага знаю что там с ордером очень всё просто можно оформить, но меня этот флекс бесит куча свойств прописывать и ещё для всех браузеров префиксы кросбраузерности, бумажный лист на тег. Потому не использую эту технологию.
0
Lazy_Den
30.06.2018, 23:39
  #6

Не по теме:

Цитата Сообщение от Mailo Посмотреть сообщение
куча свойств прописывать
Во flexbox-e их там всего около десятка.
Цитата Сообщение от Mailo Посмотреть сообщение
для всех браузеров префиксы
Вы серьёзно прописываете вендорные префиксы вручную? Есть масса вариантов, когда про такую рутинную работу можно навсегда забыть. Зачем же себя так мучить?
Цитата Сообщение от Mailo Посмотреть сообщение
Потому не использую эту технологию.
Поверьте, что когда втянетесь, то будет крайне сложно не использовать. Не отставайте, ведь сегодня уже начинают в полный рост Grid Layout юзать, а вы еще с предыдущими фишками не успели разобраться. ;D

0
Mailo
01.07.2018, 01:15  [ТС]     Как скопировать всё содержимое тега (включая другие теги и их содержимое) и вставить внутрь другого тега
  #7

Не по теме:

Да я уже втянулся, спектр решения задач крайне узок во флексе, автоматика до сих пор не не слышала про свойство display: -ms-flexbox; в отличии от ни таких уж и старых ослов, в общем хороший инструмент для изучения гугла. Вот ща уже новый делают... ждём новый багвэйв, никтож не сделает к примеру order для float или там архисложную задачу, убрать у display-block отступы, чтолб на глаз марджини не обрезать, не давайте нам Grid Layout. Хотя если он утопит бутстрап я его первым изучу и на смартгрид забтю.

0
01.07.2018, 01:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.07.2018, 01:15
Помогаю со студенческими работами здесь

Передать содержимое тега в переменную
Каким образом передать в переменную содержимое &lt;p id=&quot;theone&quot;&gt;Содержимое&lt;/p&gt;

При выборе из выпадающего меню одного из вариантов, в определенном месте меняется содержимое тега <p>
Доброго времени суток! Есть такая задача: при выборе из выпадающего меню одного из вариантов, в...

Как вставить внутрь тега?
Добрый день! Хочу вставить скрипт в конец тега head используя юзерскрипт для Tamper monkey FF....

Содержимое тега из строки
делаю аякс запрос. в ответ приходи html. Как теперь из полученного html получить содержимое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru