在下面的代码中,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但不能计算它或在每个循环中得到它
答案 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.