首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在追加的元素中追加jQuery

在追加的元素中追加jQuery
EN

Stack Overflow用户
提问于 2012-05-03 06:18:22
回答 3查看 18.7K关注 0票数 19

我有以下可以工作的jQuery代码,但它让我思考是否有可能在不需要指定我想要追加的内容的情况下对要追加的内容执行追加操作。append().append()没有做到这一点,它只是将两个元素放在一起,而不是第一个append()操作的子元素。

作品:

代码语言:javascript
运行
复制
var container = $('#container'),
    child = 'child';

$('#container').append($('<div/>',{
    'id'    : 'child'
}));

$('#' + child).append($('<a/>', {
    'class' : 'close',
    'href'  : 'javascript:;',
    html    : 'close',
    click   : function(e){
        e.preventDefault();
        $('#' + child).remove();
    }
}));

不起作用:

代码语言:javascript
运行
复制
var container = $('#container'),
    child = 'child';

$('#container').append($('<div/>',{
    'id'    : 'child'
})).append($('<a/>', {
    'class' : 'close',
    'href'  : 'javascript:;',
    html    : 'close',
    click   : function(e){
        e.preventDefault();
        $('#' + child).remove();
    }
}));

http://jsfiddle.net/Y8TwW/1/

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-03 06:25:44

可以使用.appendTo()将第一个<div>附加到ID为的元素容器,这样就可以引用这个新元素,然后使用.append()

代码语言:javascript
运行
复制
$('<div/>',{
    'id'    : 'child'
}).appendTo('#container').append(
    $('<a/>', {
        'class' : 'close',
        'href'  : 'javascript:;',
        html    : 'close',
        click   : function(e){
            e.preventDefault();
            $('#' + child).remove();
        }
    })
);
票数 23
EN

Stack Overflow用户

发布于 2012-05-03 06:55:37

因为append不返回对附加内容的引用。它引用的是同一个对象,即在第一次追加之后的container,无论你要运行多少次追加。因此,按照其他人的建议,使用appendTo,或者您可以使用以下代码来更好地说明您失败的原因:

代码语言:javascript
运行
复制
var container = $('#container'),
child = 'child';

$('#container').append($('<div/>',{
    'id'    : 'child'
})).find('#' + child).append($('<a/>', {
    'class' : 'close',
    'href'  : 'javascript:;',
     html   : 'close',
     click  : function(e){
        e.preventDefault();
        $('#' + child).remove();
     }
}));​

小提琴http://jsfiddle.net/Y8TwW/3/

票数 2
EN

Stack Overflow用户

发布于 2012-05-03 06:24:41

我会使用appendto,然后追加http://jsfiddle.net/Y8TwW/2/

代码语言:javascript
运行
复制
var container = $('#container'),
    child = 'child';
$('<div/>', { 'id': child }
 ).appendTo(container
 ).append($('<a/>', {
    'class' : 'close',
    'href'  : 'javascript:;',
    html    : 'close',
    click   : function(e){
        e.preventDefault();
        $('#' + child).remove();
    }
}));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10422501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档