Вопрос

На этот вопрос уже есть ответ здесь:

Как мне создать div элемент в jQuery?

Это было полезно?

Решение

Вы можете использовать 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');

Вот это в Документы

Примеры можно найти по адресу Выпущена jQuery 1.4:15 новых функций, которые вы должны знать .

Технически $('<div></div>') «создаст» div элемент (или, точнее, элемент DIV DOM), но не добавит его в ваш HTML-документ.Затем вам нужно будет использовать это в сочетании с другими ответами, чтобы действительно сделать с ним что-нибудь полезное (например, использовать append() метод или что-то в этом роде).

А документация по манипуляциям дает вам все возможные варианты добавления новых элементов.

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();
});
div = $("<div>").html("Loading......");
$("body").prepend(div);    
$("<div/>").appendTo("div#main");

добавит пустой div к <div id="main"></div>

Краткий способ создания div:

var customDiv = $("<div/>");

Теперь пользовательский div можно добавить к любому другому div.

Все это сработало для меня,

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/>").attr('id','new').appendTo('body');    

Это создаст новый div с идентификатором «new» в теле.

document.createElement('div');

Вот еще один метод создания элементов div с помощью 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>');

если вы хотите добавить какой-либо элемент во флай, вы можете попробовать это

selectBody.append(div);
<div id="foo"></div>

$('#foo').html('<div></div>');

Если вы используете Jquery > 1.4, вам лучше всего использовать Ответ Яна.В противном случае я бы использовал этот метод:

Это очень похоже на ответ Селорона, но я не знаю, почему они использовали 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), что обычно является плохой идеей.

В качестве альтернативы для Append () вы также можете использовать appendTo() который имеет другой синтаксис:

$("#foo").append("<div>hello world</div>");
$("<div>hello world</div>").appendTo("#foo");    

Вы можете создавать отдельные теги, используя .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.Затем я создаю дочерний тег списка с некоторым атрибутом.Я присвоил значение переменной, чтобы мне было легко его добавить.

Я думаю, что это лучший способ добавить 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() метод.Чтобы получить внешний HTML в виде строки, вы можете использовать следующее:

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");

ДОМ ID узла можно указать в качестве второго параметра:

var secondItem = $.create("div","item2");

Это серьезно?Нет.Но этот синтаксис лучше, чем $("<div></div>"), и это очень хорошее соотношение цены и качества.

(Ответ частично скопирован с: Эквивалент jQuery document.createElement?)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top