我通过遍历每个数组项并相应地分配属性,使用数组创建了一个菜单项列表。
现在,我需要为li
菜单中的每个项目添加一个复选框。我所做的尝试是通过添加输入li
标签来添加类型为checkbox的输入。但这会创建一个输入框的菜单列表。
问题:
如何从数组动态创建复选框列表?
这是我在脚本中用来创建菜单的当前代码:
//Bind the country name list in sub menu
var countries = ['United States', 'Canada', 'Argentina', 'Armenia'];
var assetList = $('#assetNameMenu')
$.each(countries, function(i)
{
var li = $('<li/>')
.addClass('ui-menu-item')
.attr('role', 'menuitem')
.appendTo(assetList);
var aaa = $('<a/>')
.addClass('ui-all')
.text(countries[i])
.appendTo(li);
var input = $('<input/>')
.addClass('ui-all')
.attr('role', 'checkbox')
.appendTo(aaa);
});
<li>
<a>All <span class="arrow">▼</span></a>
<ul class="sub-menu" id="assetNameMenu">
@* li elements created in script *@
</ul>
</li>
这将创建以下没有复选框的内容:
相反,其目的是动态创建复选框项目列表:
<li>
<a>Default <span class="arrow">▼</span></a>
<ul class="sub-menu" id="assetNameMenu">
<li><a href="#" class="small" data-value="option1" tabindex="-1"><input type="checkbox" /> Option 1</a></li>
<li><a href="#" class="small" data-value="option2" tabindex="-1"><input type="checkbox" /> Option 2</a></li>
<li><a href="#" class="small" data-value="option3" tabindex="-1"><input type="checkbox" /> Option 3</a></li>
<li><a href="#" class="small" data-value="option4" tabindex="-1"><input type="checkbox" /> Option 4</a></li>
<li><a href="#" class="small" data-value="option5" tabindex="-1"><input type="checkbox" /> Option 5</a></li>
<li><a href="#" class="small" data-value="option6" tabindex="-1"><input type="checkbox" /> Option 6</a></li>
</ul>
</li>
这将在下面创建:
只需为输入设置正确的类型并更改订单:
$.each(countries, function(i)
{
var li = $('<li/>')
.addClass('ui-menu-item')
.attr('role', 'menuitem')
.appendTo(assetList);
var input = $('<input/>')
.addClass('ui-all')
.attr('type', 'checkbox')
.appendTo(li);
var aaa = $('<a/>')
.addClass('ui-all')
.text(countries[i])
.appendTo(li);
});
Codepen:https : //codepen.io/anon/pen/oLmQRp
更新
用于显示:
.sub-menu {
width: auto;
[...]
}
.sub-menu li a {
text-align: left;
[...]
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句