Создание элемента div в jQuery [дубликат]
этот вопрос уже есть ответ здесь:
документ jQuery.создать эквивалент элемента?
13 ответов
Как мне создать div элемент jQuery?
26 ответов:
можно использовать
append(чтобы добавить последнюю позицию родителя) илиprepend(добавить при первом положении родителя):$('#parent').append('<div>hello</div>'); // or $('<div>hello</div>').appendTo('#parent');кроме того, вы можете использовать
.html()или.add()как уже упоминалось в ответ.
начиная с jQuery 1.4 вы можете передавать атрибуты в самозакрывающийся элемент следующим образом:
jQuery('<div/>', { id: 'some-id', class: 'some-class', title: 'now this div has a title!' }).appendTo('#mySelector');вот он в Docs
примеры можно найти jQuery 1.4 выпущен: 15 новых функций, которые вы должны знать .
технически
$('<div></div>')будет 'создать' adivэлемент (или более конкретно элемент DIV DOM), но не добавит его в ваш HTML-документ. Затем вам нужно будет использовать это в сочетании с другими ответами, чтобы на самом деле сделать что-нибудь полезное с ним (например, используяappend()метод или такой как).The манипуляции документации даст вам все различные варианты о том, как добавлять новые элементы.
d = document.createElement('div'); $(d).addClass(classname) .html(text) .appendTo($("#myDiv")) //main div .click(function () { $(this).remove(); }) .hide() .slideToggle(300) .delay(2500) .slideToggle(300) .queue(function () { $(this).remove(); });
все это работало на меня,
HTML-часть:
<div id="targetDIV" style="border: 1px solid Red"> This text is surrounded by a DIV tag whose id is "targetDIV". </div>JavaScript код:
//Way 1: appendTo() <script type="text/javascript"> $("<div>hello stackoverflow users</div>").appendTo("#targetDIV"); //appendTo: Append at inside bottom </script> //Way 2: prependTo() <script type="text/javascript"> $("<div>Hello, Stack Overflow users</div>").prependTo("#targetDIV"); //prependTo: Append at inside top </script> //Way 3: html() <script type="text/javascript"> $("#targetDIV").html("<div>Hello, Stack Overflow users</div>"); //.html(): Clean HTML inside and append </script> //Way 4: append() <script type="text/javascript"> $("#targetDIV").append("<div>Hello, Stack Overflow users</div>"); //Same as appendTo </script>
короткий способ создания div-это
var customDiv = $("<div/>");теперь пользовательский div может быть добавлен к любому другому div.
$("<div/>").attr('id','new').appendTo('body');это создаст новый div с идентификатором " new " в тело.
вот еще один метод для создания divs с помощью jQuery.
КЛОНИРОВАНИЕ ЭЛЕМЕНТОВ
скажем, у вас есть существующий div на Вашей странице, который вы хотите клонировать с помощью jQuery (например, для дублирования ввода несколько раз в форме). Вы бы сделали это следующим образом.
$('#clone_button').click(function() { $('#clone_wrapper div:first') .clone() .append('clone') .appendTo($('#clone_wrapper')); });<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="clone_wrapper"> <div> Div </div> </div> <button id="clone_button">Clone me!</button>
создать DIV в памяти
$("<div/>");добавить кнопку обработчики, стили и т. д. - И, наконец, вставить в DOM в селектор целевого элемента:
$("<div/>", { // PROPERTIES HERE text: "Click me", id: "example", "class": "myDiv", // ('class' is still better in quotes) css: { color: "red", fontSize: "3em", cursor: "pointer" }, on: { mouseenter: function() { console.log("PLEASE... "+ $(this).text()); }, click: function() { console.log("Hy! My ID is: "+ this.id); } }, append: "<i>!!</i>", appendTo: "body" // Finally, append to any selector }); // << no need to do anything here as we defined the properties internally.<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>похоже на ответ Яна, но я не нашел примера, который бы правильно рассматривал использование методов внутри объявление объекта свойств, так что вы идете.
просто если вы хотите создать любой HTML-тег, вы можете попробовать это например
var selectBody = $('body'); var div = $('<div>'); var h1 = $('<h1>'); var p = $('<p>');Если вы хотите добавить какой-либо элемент на flay вы можете попробовать это
selectBody.append(div);
если вы используете Jquery > 1.4, вы лучше всего с ответ Яна. В противном случае, я бы использовал этот метод:
Это очень похоже на celoron это, но я не знаю, почему они использовали
document.createElementвместо нотации Jquery.$("body").append(function(){ return $("<div/>").html("I'm a freshly created div. I also contain some Ps!") .attr("id","myDivId") .addClass("myDivClass") .css("border", "solid") .append($("<p/>").html("I think, therefore I am.")) .append($("<p/>").html("The die is cast.")) }); //Some style, for better demonstration if you want to try it out. Don't use this approach for actual design and layout! $("body").append($("<style/>").html("p{background-color:blue;}div{background-color:yellow;}div>p{color:white;}"));Я тоже думаю, что с помощью
append()С функцией обратного вызова в этом случае более читаемым, потому что вы теперь сразу, что что-то будет добавлено к телу. Но это дело вкуса, как всегда при написании любого кода или текста.В общем, используйте как можно меньше HTML в коде JQuery, так как это в основном спагетти-код. Он подвержен ошибкам и трудно поддерживать, потому что HTML-строка может легко содержать опечатки. Кроме того, он смешивает язык разметки (HTML) с языком программирования (Javascript/Jquery), что обычно является плохой идеей.
вы можете создать отдельные теги, используя
.jquery()метод. И создать дочерние теги с помощью.append()метод. Поскольку jQuery поддерживает цепочку, вы также можете применить CSS двумя способами. Либо укажите его в классе, либо просто позвоните.attr():var lTag = jQuery("<li/>") .appendTo(".div_class").html(data.productDisplayName); var aHref = jQuery('<a/>',{ }).appendTo(lTag).attr("href", data.mediumImageURL); jQuery('<img/>',{ }).appendTo(aHref).attr("src", data.mediumImageURL).attr("alt", data.altText);во-первых, я добавляю тег списка к моему тегу div и вставляю в него данные JSON. Далее, я создаю дочерний тег списка, при условии, что какой-то атрибут. Я присвоил значение переменной, так что это будет легко для меня, чтобы добавить оно.
кроме того, чтобы добавить() вы также можете использовать
appendTo(), который имеет другой синтаксис:$("#foo").append("<div>hello world</div>"); $("<div>hello world</div>").appendTo("#foo");
Я думаю, что это лучший способ добавить div:
чтобы добавить тестовый div к элементу div с идентификатором div_id:
$("#div_id").append("div name along with id will come here, for example, test");теперь добавьте HTML к этому добавлен тест div:
$("#test").append("Your HTML");
Если это просто пустой div, этого достаточно:
$("#foo").append("<div>")или
$("#foo").append("<div/>")это дает тот же результат.
Я надеюсь, что это поможет коду. :) (Я использую)
function generateParameterForm(fieldName, promptText, valueType) { //<div class="form-group"> //<label for="yyy" class="control-label">XXX</label> //<input type="text" class="form-control" id="yyy" name="yyy"/> //</div> // Add new div tag var form = $("<div/>").addClass("form-group"); // Add label for prompt text var label = $("<label/>").attr("for", fieldName).addClass("control-label").text(promptText); // Add text field var input = $("<input/>").attr("type", "text").addClass("form-control").addClass(valueType).attr("id", fieldName).attr("name", fieldName); // lbl and inp => form $(form).append(label).append(input); return $(form); }
$(HTMLelement)может успехом. Если вы хотите epmty div использовать его как$('<div></div>');. Также вы можете установить другие элементы тем же способом. Если вы хотите изменить внутренний HTML после создания вы можете использоватьhtml()метод. Для получения outerHTML в качестве строки вы можете использовать вот так:var element = $('<div/>'); var innerHTML = element.html(); // if you want set new HTML use it like this element.html('<b>new HTML</b>'); var outerHTML = element[0].outerHTML;
можно использовать
.add()создать новый jQueryобъект и добавить к целевому элементу. Затем используйте цепочку, чтобы продолжить.например jQueryApi:
$( "div" ).css( "border", "2px solid red" ) .add( "p" ) .css( "background", "yellow" );div { width: 60px; height: 60px; margin: 10px; float: left; }<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div>
как насчет этого? Вот,
pElementотносится к элементу, который вы хотите этоdivвнутри (чтобы быть ребенком! :).$("pElement").append("<div></div");вы можете легко добавить что-нибудь еще к этому
divв строке-атрибуты, содержание, вы называете его. Обратите внимание, что для значений атрибутов необходимо использовать правильные кавычки.
Я только что сделал маленький плагин jQuery для этого.
он следует за вашим синтаксисом:
var myDiv = $.create("div");DOM идентификатор узла может быть указан в качестве второго параметра:
var secondItem = $.create("div","item2");это серьезно? Нет. Но этот синтаксис лучше, чем $("
"), и это очень хорошее соотношение цены и качества.(ответ частично скопирован из: документ jQuery.создать эквивалент элемента?)
использование:
$("#parentDiv").append("<div id='childDiv'>new div to be produced</div>");Я думаю, что это поможет.
Comments