我想在我的主要html元素宽度数据和特定的CSS里面添加28 div。 2次x 14 div。
我不明白为什么会这样,并在我的页面中显示28 div:
createCards: function() {
var cards = [];
for(var i = 1; i <= 14 ; i++) {
var card = $('<div>').addClass('carte cache');
card.css('background-position', '0 ' + app.backgroundTop + 'px').data('id', i);
cards[i] = card;
app.backgroundTop -= 100;
}
app.backgroundTop = 0;
for(var i = 15; i <= 28 ; i++) {
var card = $('<div>').addClass('carte cache');
card.css('background-position', '0 ' + app.backgroundTop + 'px').data('id', (i-14));
cards[i] = card;
app.backgroundTop -= 100;
}
$('main').append(cards);
而这不是:
var cards = [];
for(var i = 1; i <= 14 ; i++) {
var card = $('<div>').addClass('carte cache');
card.css('background-position', '0 ' + app.backgroundTop + 'px').data('id', i);
cards[i] = card;
cards[i+14] = card;
app.backgroundTop -= 100;
}
$('main').append(cards);
我试试这个,我也尝试将每个var卡添加到spécific数组并使用concat fonction但是它总是相同的结果。我的页面上只有14个div而我在控制台登录数组时有28个元素。?
有什么想法吗?
答案 0 :(得分:0)
在第二个示例中,您将cards[i]
和cards[i+14]
分配给同一个jquery创建的div实例。这将注册为jquery的相同对象,因此它只会被添加一次。您需要为数组的每个索引单独声明$('<div>')
,或者如果您真的希望它们相同,则使用card.clone()
作为第二个声明。
把它想象成它们是同一个元素,一个元素只能在一个地方。