#javascript
Вопрос:
Мне нужно вставить div_A
в div_B
, но все равно сохранить div_A
для справки ?
var div_A = document.createElement('div'); var newdiv = `lt;div class="div_B"gt; ${div_A.outerHTML} lt;/divgt;`; $('.container').append(newdiv); div_A.append('Hello');
.container{ background-color:blue; width:200px; height:200px; } .div_B{ background-color:red; width:150px; height:150px; } .div_B div{ background-color:yellow; width:100px; height:100px; }
lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; lt;div class="container"gt;lt;/divgt;
Спасибо за любые предложения
Комментарии:
1. Поэтому не используйте его как строку, которая противоречит цели ссылки
2. Я не понимаю, как ответить на этот вопрос. Пользователь добавил свой подход и минимальный воспроизводимый код. Пользователь опубликовал вопрос, потому что он застрял и хочет что-то узнать/понять.
Ответ №1:
Вместо объединения строки HTML, пусть новый div_B
элемент также будет фактическим элементом, а не просто строкой:
var div_A = document.createElement('div'); var newdiv = $(`lt;div class="div_B" /gt;`); newdiv.append(div_A); $('.container').append(newdiv); div_A.append('Hello');
.container{ background-color:blue; width:200px; height:200px; } .div_B{ background-color:red; width:150px; height:150px; } .div_B div{ background-color:yellow; width:100px; height:100px; }
lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; lt;div class="container"gt;lt;/divgt;
Комментарии:
1. Что делать, если я хочу вставить
div_A
в div, который вложен внутриdiv_B
?2. Затем вы бы сделали то же самое — явно создали каждый нужный вам элемент и добавили к ним дочерние элементы, сохраняя ссылку на них.
Ответ №2:
Если вы хотите, чтобы ссылка на div обновила содержимое, вам нужно будет добавить элемент, а не использовать HTML элемента. Строка в это время является моментальным снимком. Он не будет делать ничего волшебного и будет постоянно обновляться.
Поэтому создайте div, добавьте div, и теперь вы можете его обновить.
var div_A = document.createElement('div'); var newdiv = $('lt;div class="div_B"gt;lt;/divgt;'); newdiv.append(div_A); $('.container').append(newdiv); div_A.append('Hello');
.container{ background-color:blue; width:200px; height:200px; } .div_B{ background-color:red; width:150px; height:150px; } .div_B div{ background-color:yellow; width:100px; height:100px; }
lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; lt;div class="container"gt;lt;/divgt;
Комментарии:
1. Спасибо, мне нужно вставить
div_A
в div, который вложен внутриdiv_B
?
Ответ №3:
нужно использовать что-то вроде этого
var divb = document.createElement("div") divb.InnerHtml = diva.OuterHtml container.appendChild(divb)