gpt4 book ai didi

javascript - 在 jQuery 中迭代数组时,每隔两个元素创建一个新列表

转载 作者:行者123 更新时间:2023-11-28 18:48:46 25 4
gpt4 key购买 nike

在迭代数组以创建 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>

代码 fiddle - 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);

关于javascript - 在 jQuery 中迭代数组时,每隔两个元素创建一个新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34870658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com