如何在jQuery中创建div元素?


当前回答

如果您使用Jquery>1.4,您最好使用Ian的答案。否则,我将使用此方法:

这与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()与回调函数一起使用更可读,因为您现在马上就可以看到将要向主体添加的内容。但这是一个品味问题,在编写任何代码或文本时总是如此。

通常,在JQuery代码中使用尽可能少的HTML,因为这大部分是意大利面代码。它容易出错,很难维护,因为HTML字符串很容易包含拼写错误。此外,它将标记语言(HTML)与编程语言(Javascript/Jquery)混合在一起,这通常是一个坏主意。

其他回答

从jQuery1.4开始,您可以将属性传递给自封闭元素,如下所示:

jQuery('<div>', {
    id: 'some-id',
    class: 'some-class some-other-class',
    title: 'now this div has a title!'
}).appendTo('#mySelector');

在文档中

示例可以在jQuery1.4发布:你必须知道的15个新特性中找到。

从技术上讲,$(“<div></div>”)将“创建”一个div元素(或者更具体地说是一个div DOM元素),但不会将其添加到HTML文档中。然后,您需要将其与其他答案结合使用,以实际使用它做任何有用的事情(例如使用append()方法等)。

操纵文档为您提供了关于如何添加新元素的各种选项。

如果它只是一个空div,这就足够了:

$("#foo").append("<div>")

or

$("#foo").append("<div/>")

它给出了相同的结果。

<div id="foo"></div>

$('#foo').html('<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>