动态创建的p元素未附加到动态创建的div

时间:2012-10-26 09:29:42

标签: jquery dom append element

由于某种原因,下面函数中的p元素未创建(和/或附加到div)。如果我像div一样将它附加到'#listOfListObjects',它可以工作,但我希望它在div中。

我做错了什么?

    $('#addListObjectSubmit').click(function (e) {

        var listObjectName = $('#m_newListObject').val();

        if((listObjectName == null) || (listObjectName == '')) {
            return false;
        }
        else {
            var listDiv = 'listDiv' + i;

            $('<div>', {
                class: 'listObjectShow',
                id: listDiv
            }).appendTo('#listOfListObjects');

            $('<p>', {
                class: 'listObjectShow',
                text: listObjectName,
                id: 'listObject' + i
            }).appendTo(listDiv);
        }

        i += 1;

        e.preventdefault();
    });

3 个答案:

答案 0 :(得分:4)

更改此

var listDiv = 'listDiv' + i;

var listDiv = '#listDiv' + i;

$('<div>', {
    class: 'listObjectShow',
    id: listDiv
}).appendTo('#listOfListObjects');

$('<p>', {
    class: 'listObjectShow',
    text: listObjectName,
    id: 'listObject' + i
 }).appendTo(listDiv);

$('<div>', {
     class: 'listObjectShow',
     id: listDiv
 }).appendTo('#listOfListObjects');

 $('<p>', {
     class: 'listObjectShow',
     text: listObjectName,
     id: 'listObject' + i
 }).appendTo('#' + listDiv);

答案 1 :(得分:1)

text不是<p>元素的属性。

你应该改变:

$('<p>', {
    class: 'listObjectShow',
    text: listObjectName,
    id: 'listObject' + i
}).appendTo(listDiv);

$('<p>', {
    class: 'listObjectShow',
    id: 'listObject' + i
}).text(listObjectName).appendTo(listDiv);

答案 2 :(得分:0)

我最喜欢这种事情的方式就是这个

var $div = $('<div>', {
               class : 'listObjectShow',
               id    : listDiv
           }).appendTo('#listOfListObjects');

$('<p>', {
    class : 'listObjectShow',
    id    : 'listObject' + i
}).text(listObjectName).appendTo( $div );

选择器,ID等没有问题......只使用了对新div的简单引用