1

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

这是我的代码:

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"*让它附加一个等于我的 vardiv吗?ididXX

4

4 回答 4

2

只需使用divTag.

那条线看起来像这样:

divTag.appendChild(text);
于 2012-08-01T15:48:12.980 回答
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大概是打算...

于 2012-08-01T15:48:45.790 回答
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');
}
于 2012-08-01T15:54:18.847 回答
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;
 }
于 2012-08-01T15:51:59.133 回答