我正在尝试在具有特定类的几个div中添加div,即".description"
然后,我希望每个内部div具有不同的类,但它仅适用于具有上述类的第一个div
这是代码:
function addDescriptionFields() {
var i=0;
for(i=1; i<=3; i++) {
$(".description").append("<div></div>");
}
$(".description").each(function() {
$(".description div").eq(0).addClass("game-name");
$(".description div").eq(1).addClass("game-description");
$(".description div").eq(2).addClass("game-popularity");
});
}
因此,结果是类".description"
的第一个div具有指定类中的所有div,但其他div则没有。
有人知道我做错了吗?
答案 0 :(得分:2)
each()
循环没用,因为你正在进行$(".description div").eq(0)
,它只选择该集合中的第一个元素,而不是每个.description
中的第一个元素。
您必须将其更改为此类
function addDescriptionFields() {
for(var i=1; i<=3; i++) {
$(".description").append("<div></div>");
}
$(".description").each(function() {
$("div", this).eq(0).addClass("game-name");
$("div", this).eq(1).addClass("game-description");
$("div", this).eq(2).addClass("game-popularity");
});
}
更好的方法是做
function addDescriptionFields() {
var classes = ["game-name", "game-description", "game-popularity"],
description = $(".description");
$.each(classes, function(_, klass) {
description.append("<div class='"+klass+"' />");
}
}
答案 1 :(得分:0)
它应该是这样的: var descClasses = [“game-name”,“game-description”,“game-popular”]; $('。description&gt; div')。每个 (function(index){$(this).addClass(descClasses [index])});