jquery发现计算儿童元素的问题

时间:2013-08-06 07:25:47

标签: jquery jquery-ui

在下面的代码中,div:first class name是create.so代码实际上将一个div添加到id accordion但是当我执行console.log()以查找{{1}的数量时它总是打印出1我做错了什么

.create

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 });

arr.length不是我的问题..当我打印$(“#accordion”)。html()我看到两个div与.create但不能计算它或在每个循环中得到它

3 个答案:

答案 0 :(得分:1)

由于arr.length,你永远不会进入你的循环。我相信你的意思是i<arr-1

答案 1 :(得分:0)

问题可能是因为您使用.html()创建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
});

答案 2 :(得分: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.