#jquery
#jquery
Вопрос:
У меня есть список элементов (текст, входные данные, кнопки и т. Д.), родительская структура которых одинакова для всех.
Я хочу создать одну переменную и вставить в нее элемент.
Моя фактическая структура div для всех приведенных ниже элементов:
<div class="element-container">
<div class="element-holder">
<div class="eleement-parent">
<div class="text-element">Text</div>
</div>
</div>
</div>
<div class="element-container">
<div class="element-holder">
<div class="eleement-parent">
<div class="button-element"><input type="button" value="My button"></div>
</div>
</div>
</div>
В приведенном выше примере изменится только тип элемента div (текстовый элемент, элемент кнопки и т. Д.).
Как я могу переносить только типы элементов внутри одной переменной Blow — это код, который я безуспешно пытаюсь выполнить: (
Он работает так, как ожидалось, но не так, как я думаю.
var container_top = '<div class="element-container"><div class="element-holder"><div class="eleement-parent">';
var container_bottom = '</div></div></div>';
var textElement = jQuery(container_top '<div class="text-element">Text</div>' container_bottom);
var buttonElement = jQuery(container_top '<div class="button-element"><input type="button" value="My button"></div>' container_bottom);
var inputElement = jQuery(container_top '<div class="input-element"><input type="text" value="My text field"></div>' container_bottom);
jQuery(textElement).appendTo('.wrapper');
jQuery(buttonElement).appendTo('.wrapper');
jQuery(inputElement).appendTo('.wrapper');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="wrapper"></div>
Комментарии:
1. Что это
It is working as expected, but not the proper way I think.
значит? Чего от этого можно ожидать? Код делает то, что, по вашим словам, он должен делать2. вместо
container_top '<div class="text-element">Text</div>' container_bottom
этого я хочу создать элемент какcontainer '<div class="text-element">Text</div>'
3. Я добавил ответ с двумя способами сделать это
Ответ №1:
Итак, вы хотите это:
const $wrapper = $(".wrapper");
const $container = $('<div class="element-container"><div class="element-holder"><div class="element-parent"></div></div></div>');
const $text = $container.clone();
$text.find(".element-parent").append('<div class="text-element">Text</div>')
const $button = $container.clone();
$button.find(".element-parent").append('<div class="button-element"><input type="button" value="My button"></div>');
const $input = $container.clone();
$input.find(".element-parent").append('<div class="input-element"><input type="text" value="My text field"></div>');
$wrapper.append($text);
$wrapper.append($button);
$wrapper.append($input);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="wrapper"></div>
Цикл
const $wrapper = $(".wrapper");
const $container = $('<div class="element-container"><div class="element-holder"><div class="element-parent"></div></div></div>');
$.each(['<div class="text-element">Text</div>',
'<div class="button-element"><input type="button" value="My button"></div>',
'<div class="input-element"><input type="text" value="My text field"></div>'
],function(i,elem) {
const $wrapped = $container.clone();
$wrapped.find(".element-parent").append(elem);
$wrapper.append($wrapped);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="wrapper"></div>