在DOM中附加动态(新)创建的元素

时间:2018-03-28 09:40:16

标签: javascript jquery dom dynamic append

我试图以递归方式动态追加一个元素,即:

我有一个带有“request-get”类的锚标签,点击这个锚标签我附加了一个div,其中有几个具有相同类名“request-get”的锚标签,并在单击最后创建的锚点时追加div标签:这是我的代码

注意:ajax调用工作正常,我在新创建的锚点标记的点击事件后得到所有数据,但我没有得到新创建的Div的引用

$(document).on("click", ".request-get", function (event) {
    var request = new RequestModule.AjaxRequestBuilder(this).build();
    var child = $(this).data('target');
    var childDocument = $(document).find(child);
    console.log(childDocument);
    request.call({
        success: function (response) {
            $(child).empty();
            console.log($(child));
            for (var i in response) {

                var a = $('<a/>', { href: "" })
                            .attr('id', response[i].code)
                            .attr('class', 'request-get child')
                            .attr('data-id', response[i].id)
                            .attr('data-controller', 'objectif')
                            .attr('data-controller-suffix', 'children')
                            .attr('data-method', 'get')
                            .attr('data-target', '#details_' + response[i].code)
                            .attr('data-toggle', 'collapse')
                            .css('display', 'block')
                            .text(response[i].code+' - '+response[i].intitule);

                var div = $('<div/>', { id: 'details_' + response[i].code })
                            .attr('class', 'details collapse child');


                $(child).append(a);
                $(child).append(div);

            }
        },

        error: function (response) {

        }
    });
});

2 个答案:

答案 0 :(得分:0)

我认为您使用的是child变量而不是childElement一个

,因此您可能正在使用错误的变量

答案 1 :(得分:0)

您新添加的元素没有相同的课程。您正在提供&#34; request-get-objectif&#34;而不是&#34; request-get&#34;