在将element1追加到文档之前,先将element2追加到element1

Append element2 to element1 before appending element1 to document

本文关键字:追加 element1 先将 element2 文档 在将      更新时间:2023-09-26

我想用jQuery动态地创建一个元素,并在其中动态地放置另一个元素

例如,我希望输出看起来像这样:

<span class="imageContainer">
    <p>Close</p>
    <img src="image.jpg" />
<span>

我可以使用以下方法,但它阻止我使用其他提供属性的方法:

$('<span class="imageContainer"><p>Close</p><img src="image.jpg" /></span>').prependTo('body');

我目前正在用这段代码创建span元素,我想知道如何在将代码附加到任何东西之前将其附加到它,这可能是一个我忽略的简单解决方案:

$('<span/>', {
    'id': 'imageContainer'
});

我想使用这个方法的原因是,这样我就可以一次性附加点击方法等等。

更新的解决方案(感谢@ParvSharma(:

function hoverBox( url, e ) {
    var hoverbox = $( '<span/>', {
        'id': 'imageContainer',
        'style': 'top:'+e.pageY+'px; left:'+e.pageX+'px;'
    }).append(
        $('<p/>', {
            html: 'Close',
            click: function() {
                var parentContainer = '#'+$(this).parent().attr('id');
                destroy( parentContainer );
            }
        })
    ).append(
        $('<img/>', {
            'src': url
        })
    );
    return hoverbox;
}
  1. 使跨度

    var span = $('<span/>', { 'id': 'imageContainer'});

  2. 然后只做

    span.append($("<p></p>"));

  3. 然后jo

    span.append($("<img></img>"));

  4. 现在将span附加到要附加到的任何对象

试试这个:

$('<span class="imageContainer"><p>Close</p><img src="image.jpg" /></span>')
    .find('p')
        .click(function() {
            // click code here.
        })
    .end()
    .prependTo('body');

试试这个

$('<span class="imageContainer"><p>Close</p><img src="image.jpg" /></span>').find("img").attr({}).end().prependTo('body');

您也可以根据自己的需求使用它。

$('<span/>', {
    'id': 'imageContainer'
}).append('<p>Close</p><img src="image.jpg" />')
.prependTo('body');
$('<span/>', {'id':'theId'}).click(....);

使用jQuery创建元素后,它将返回该元素的jQuery对象…