javascript - Jquery 部分追加
问题描述
我想将 28 div 添加到我的主要 html 元素宽度数据和内部的特定 css 中。2 次 x 14 格。
我不明白为什么会这样并在我的页面中显示 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 卡添加到一个特定的数组并在之后使用 concat 函数,但它总是相同的结果。我的页面上只有 14 个 div,而当我控制台记录数组时我有 28 个元素。
有任何想法吗 ?
解决方案
在第二个示例中,您将cards[i]
and分配cards[i+14]
给同一个 jquery 创建的 div 实例。这将作为同一个对象注册到 jquery,所以它只会被添加一次。$('<div>')
您需要为数组的每个索引单独声明,或者card.clone()
如果您真的希望它们相同,则使用第二个。
认为它们是同一个元素,一个元素只能在一个地方。
推荐阅读
- docker - 通过 kibana 控制台进行 Elasticsearch 查询响应缓慢
- java - javafx 通过 stage(?) 方法重新打开最小化窗口
- python - 获取邻接列表中的所有叶子
- kotlin - 如何用 kotlin 打印当前的类路径?
- chromecast - Chromecast v3 接收器应用程序不工作
- c# - OverlapCircle 找不到玩家
- php - 错误 array_push() 期望参数 1 是数组,PHP 中给出了 null
- java - 在 linux 上编译 .java 文件
- python - 如何根据 Python 列表中的列号过滤数据框中的行?
- python - 如何在 Python 中为网络爬虫编写 for 循环