你可以使用appendChild将一个元素添加到具有动态创建的id的div中吗?

时间:2012-08-01 15:43:41

标签: javascript jquery html dynamic appendchild

我正在尝试使用Javascript将一些<p>元素添加到div。该函数循环以创建预定量的这些div。每次函数运行时都会创建id的{​​{1}},并且只是'div'加上一个数字(例如:divdiv1div2等等。)

这是我的代码:

div3

我的问题是,您可以对var divNum = 'div'; function myFunction () { var divTag = document.createElement("div"); divTag.id = "div"; divTag.className ="info"; document.body.appendChild(divTag); var idXX = divNum; $('#div').attr('id',idXX); var text = document.createElement("p"); text.id = "1"; text.className ="text1-2"; text.innerHTML = "A"; *"PROBLEM HERE"*.appendChild(text); divNum = divNum + 1; } 所说的内容进行操作,使其*"PROBLEM HERE"*附加div等于我的变种id吗?

4 个答案:

答案 0 :(得分:2)

只需使用divTag

这条线看起来像这样:

divTag.appendChild(text);

答案 1 :(得分:2)

我可能误解了这个问题,但在我看来,“问题在这里”这一行应该是这样的:

$('#'+idXX).append(text); // literally doing what you asked

或者只是这个:

divTag.appendChild(text); // better approach since it doesn't have to go look for it.

另外,为什么要创建div然后更改其ID?此外,divNum被初始化为"div",而不是0,可能是... {/ p>

答案 2 :(得分:0)

如果你想使用jQuery而不是将其与基本javascript混合使用:

var divNum = 'div';

function myFunction () {
    var divTag = $("<div>").
        .attr("id", divNum)
        .addClass("info");        
        .appendTo($("body"));
    $("<p>")
        .attr("id", "1")
        .addClass("test1-2")
        .html("A")
        .appendTo(divTag);

    divNum = divNum + 1;
 }

答案 3 :(得分:0)

看起来像是使用jQuery来设置属性id。

$('#div').attr('id',idXX);

你应该能够在jQuery中做所有事情

var divNum = 0;
function myFunction() {
    var _p = $('<p>').text('A').addClass('text-1-2')
    $('<div>').attr({'id':'div'.concat(++divNum)}).addClass('info').html(_p).appendTo('body');
}