0

在下面的代码中, div:first 类名称是 create.so 代码实际上将一个 div 附加到 idaccordion但是当我执行 console.log() 来查找.create元素的数量时,它总是打印 1 我在做什么错

var div = $("#accordion").find("div:first").html();
arr=2;
for(var i=0;i<arr.length-1;i++)
{
    $("#accordion").append(div);
}

console.log($("#accordion").find(".create")) //always print 1

$("#accordion").children(".create").each(function(index) {
    console.log("==") //prints only once
});

EDIT

arr.length 对我来说不是问题..当我打印 $("#accordion").html() 我看到两个带有 .create 的 div 但无法计数或在每个循环中获取它

4

3 回答 3

1

你永远不会因为arr.length. 我相信你的意思i<arr-1

于 2013-08-06T07:29:05.970 回答
0

使用以下

var div = $("#accordion").find("div:first").html();
arr=2;
for(var i=0;i<arr-1;i++)
{
    $("#accordion").append(div);
}

console.log($("#accordion").find(".create")) //always print 1

$("#accordion").children(".create").each(function(index) {
    console.log("==") //prints only once
});

它应该工作。实际上 arr 的值为 2,而您使用的是 arr.length-1。它总是返回 0。

于 2013-08-06T07:32:59.307 回答
0

问题可能是由于您使用.html()to create div,它获取第一个 div 的内部内容,而不是孩子本身。

您需要在此处使用 clone()

var div = $("#accordion").find("div:first");
arr=2;
for(var i=0;i<arr.length;i++)
{
    $("#accordion").append(div.clone());
}

console.log($("#accordion").find(".create")) //always print 1

$("#accordion").children(".create").each(function(index) {
    console.log("==") //prints only once
});
于 2013-08-06T07:29:12.123 回答