Javascript 基于复选框状态筛选传单Geojson对象

Javascript 基于复选框状态筛选传单Geojson对象,javascript,checkbox,leaflet,Javascript,Checkbox,Leaflet,我一直在尝试根据复选框ID对传单层进行过滤。在启用的对象被填充,相应的功能被过滤并添加到地图中的情况下,这种方法会起作用 但是,当我取消选中框对象时,该框对象将变为空,但该功能仍保留在地图上,因为没有任何东西可以告诉我是否要删除 我需要在这里做什么才能删除该功能 function update() { var enabled = {}; // Run through each checkbox and record whether it is checked

我一直在尝试根据复选框ID对传单层进行过滤。在启用的对象被填充,相应的功能被过滤并添加到地图中的情况下,这种方法会起作用

但是,当我取消选中框对象时,该框对象将变为空,但该功能仍保留在地图上,因为没有任何东西可以告诉我是否要删除

我需要在这里做什么才能删除该功能

   function update() {
        var enabled = {};
        // Run through each checkbox and record whether it is checked. If it is,
        // add it to the object of types to display, otherwise do not.
        for (var i = 0; i < checkboxes.length; i++) {
          if (checkboxes[i].checked) enabled[checkboxes[i].id] = true;
         }
        L.geoJson(parishesData, {
        filter: function(feature, layer) {
            return (feature.properties.name in enabled);
            }
        }).addTo(map);
        console.log(enabled)
        };
函数更新(){
启用var={};
//运行每个复选框并记录是否选中。如果选中,
//将其添加到要显示的类型的对象中,否则不显示。
对于(变量i=0;i
每当脚本执行
update()
函数时,它都会创建一个新的
L.geoJson
组并将其添加到映射中

您应该保留对该组的引用,并在将新组添加到映射之前将其从映射中删除

可能是这样的:

var组;
函数更新(){
启用var={};
//运行每个复选框并记录是否选中。如果选中,
//将其添加到要显示的类型的对象中,否则不显示。
对于(变量i=0;i
每当脚本执行
update()
函数时,它都会创建一个新的
L.geoJson
组并将其添加到映射中

您应该保留对该组的引用,并在将新组添加到映射之前将其从映射中删除

可能是这样的:

var组;
函数更新(){
启用var={};
//运行每个复选框并记录是否选中。如果选中,
//将其添加到要显示的类型的对象中,否则不显示。
对于(变量i=0;i
太好了,谢谢!我确实尝试过类似的方法,但每次都没有删除L.geoJson组。非常感谢!我确实尝试过类似的方法,但每次都没有删除L.geoJson组。