在jquery和javascript中构造动态div

时间:2012-09-11 14:02:42

标签: javascript jquery

嗯 我在这里看到的所有答案都表明这应该有效,但是......

时...

    var qnDivName = "qnDiv" + i;
    var currentQnDiv = document.createElement("div");
    var qnDivId = document.createAttribute("id");
    qnDivId.nodeValue = qnDivName;
    currentQnDiv.setAttributeNode(qnDivId);
    currentQnDiv.className = "questionContainer";

相当于......

    var currentQnDiv = $("<div/>", {
        "class": "questionContainer",
        id: "qnDiv" + i
    });
    alert("qndiv class: " + currentQnDiv.className);

警报提供'未定义'。 'i'来自for循环。我正在动态创建div以附加到页面下方的文档...

    testDiv.appendChild(currentQnDiv);      
  } //end for loop

普通的js工作,但jQuery没有。我有其他jQuery在调用函数中工作,所以......

有什么想法吗?

5 个答案:

答案 0 :(得分:2)

使用

alert("qndiv class: " + currentQnDiv.get(0).className);

您的currentQnDiv对象是jQuery集合,而不是基本的Dom对象。

答案 1 :(得分:1)

className不是有效的jQuery属性。您应该使用currentQnDiv[0].className代替

答案 2 :(得分:1)

$("<div/>").addClass("questionContainer")
           .attr("qnDiv" + i).appendTo("body");

body可以替换为要附加此div的元素的id。

答案 3 :(得分:1)

,否则

var currentQnDiv = $("<div/>");
currentQnDiv.addClass("questionContainer");
currentQnDiv.attr("qnDiv" + i).appendTo("body");

答案 4 :(得分:0)

班级真的应该在“”吗?

var currentQnDiv = $("<div/>", {
    class: "questionContainer",
    id: "qnDiv" + i
});

只是我的想法,没有足够的时间自己测试它。