我使用以下mapbox.js example来过滤geojson文件中的功能。该示例是不言自明的 - 第一步是找到所有选中的复选框并构建其值列表。
目前,复选框值都是单个字符串。我的问题很简单,复选框中的value
可以是整数数组(或字符串数组吗?),如果是这样,如何在{{1}中将整数数组附加到value
这样你就可以一次过滤多个值?
div input
答案 0 :(得分:1)
您可以利用jQuery的.data() method,它允许您为DOM上的元素分配属性名称和值。您可以将数据元素的值设置为以逗号分隔的整数列表,这些整数可以解析为自己的数组。
一些(未经测试的)伪代码作为示例:
<div id='filters' class='ui-select'>
<div><input type='checkbox' checked=checked class='filter'
name='filter' id='fast-food' value='fast-food' data-filter='fast-food,restaurants'/><label for='fast-food'>fast-food</label></div>
<div><input type='checkbox' checked=checked class='filter'
name='filter' id='bicycle' value='bicycle'/><label for='bicycle' data-filter='bicycle, transportation'>bicycle</label></div>
<div><input type='checkbox' checked=checked class='filter'
name='filter' id='bar' value='bar' data-filter='bar, restaurants'/><label for='bar'>bar</label></div>
</div>
...
function change() {
// Find all checkboxes that are checked and build a list of their values
var on = [];
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
var array = $(checkboxes[i]).data("filter").split(',');
Array.prototype.push.apply(on,array);
}
}
...
}