在 jQuery 中迭代数组时,每隔一个元素创建新列表
Create new list after every second element while iterating over an array in jQuery
在遍历数组以创建 LI 节点时,UL 应该在每秒 LI 之后关闭以生成以下 HTML 结构
所需输出
<ul class="bt-zone-pair">
<li class="bt-zone">
<a href="javascript:void(0)">Team <span>A</span></a>
</li>
<li class="bt-zone">
<a href="javascript:void(0)">Team <span>B</span></a>
</li>
</ul>
<ul class="bt-zone-pair">
<li class="bt-zone">
<a href="javascript:void(0)">Team <span>C</span></a>
</li>
<li class="bt-zone">
<a href="javascript:void(0)">Team <span>D</span></a>
</li>
</ul>
代码小提琴 - https://jsfiddle.net/ylokesh/o8gL3L3o/
JavaScript
var btTeams = ['Team A', 'Team B', 'Team C', 'Team D', 'Team E', 'Team F', 'Team G', 'Team H'];
var domFragmentTeams = "";
var destinationCol = $('.bt-col1');
// create Teams in column 1
$.each(btTeams, function( intIndex, objValue ){
var listItemWrapper = destinationCol.append(
$('<ul class="bt-zone-pair"></ul>')
);
listItemWrapper.append(
$('<li class="bt-zone"><a href="javscript:void(0)">' + objValue + "</a></li>")
);
}
);
你可以尝试这样的事情:
我也不确定,但我想在循环中附加元素是不好的。您可以创建整个列表并执行批量操作。
JSFiddle.
.每个代码
// Define a variable outside so you can append string to it
var _html = "";
$.each(btTeams, function(intIndex, objValue) {
// For odd values, add start tags.
if ((intIndex + 1) % 2 !== 0) {
_html += '<ul class="bt-zone-pair">';
}
// Add li for all cases
_html += '<li class="bt-zone"><a href="javscript:void(0)">' +
objValue + "</a></li>";
// Add end tag for even cases
if ((intIndex + 1) % 2 === 0) {
_html += "</ul>"
}
});
// Append constructed HTML
destinationCol.append(_html);
您可以使用 % 运算符(模数(除法余数))以便仅每隔 OTHER 迭代使用代码。
var btTeams = ['Team A', 'Team B', 'Team C', 'Team D', 'Team E', 'Team F', 'Team G', 'Team H'];
var domFragmentTeams = "";
var destinationCol = $('.bt-col1');
// create Teams in column 1
$.each(btTeams, function( intIndex, objValue ){
var listItemWrapper = destinationCol;
if(intIndex%2 ==0) {
destinationCol.append(
$('<ul class="bt-zone-pair"></ul>')
);
}
listItemWrapper.append(
$('<li class="bt-zone"><a href="javscript:void(0)">' + objValue + "</a></li>")
);
}
);
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 表追加而不附加最后一个元素
- 滚动到容器中的下一个元素-几乎到了
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript获取上一个元素的内容
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 在数组中的一个元素上设置多个值
- 指令的模板必须只有一个根元素:With restrict E&替换true
- HTML JavaScript,我如何能够通过给每个元素一个不同的Id来使用JavaScript使这个函数工作
- 如何创建一个独立的 DOM 元素?一个不从父母那里继承 css 等
- 如何给图像元素一个“;选择“;使用Raphael.js查看
- 如何显示隐藏的
- 元素一个接一个或全部同时
- 使用"span"创建一个自定义的基于web的文本编辑器;元素——一个坏主意
- 引导旋转木马传递元素一个接一个
- 给所有元素一个匹配数组内容的ID
- 我如何得到Json数组元素一个接一个的jquery上不同的id'
- 一次淡入附加元素一个
- 如何使用AngularJS检索外部网站的内容(一个元素一个元素)