Я пытаюсь вызвать функцию для очистки слоя. Но ничего не произошло, используя это
<li class = "list-group-item">
Remove All
<div class = "material-switch pull-right">
<input id = "removeAll" name = "someSwitchOption001" type = "checkbox" />
<label for = "removeAll" class = "label-success"></label>
</div>
</li>
И это мой сценарий
var map = new L.Map('map', {zoom: 8, center: new L.latLng([-2.9365327, 104.4950964]) });
map.addLayer(new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png')); //base layer
<?php foreach ($map_link->result_array() as $i) :?>
var <?= $i['maplink_var']; ?> = new L.GeoJSON(<?= $i['maplink_var']; ?>, {
style: function(feature) {
return {color: feature.properties.color };
},
onEachFeature: function(feature, marker) {
const p = feature.properties;
p.title = 'p.Name';
marker.on('click', function (e) {
var idlink = "<?php echo $i['maplink_var']; ?>";
var aab=feature.properties.ID;
var numlat = e.latlng.lat;
var nlat = numlat.toFixed(3);
var numlng = e.latlng.lng;
var nlng = numlng.toFixed(3);
marker.bindPopup('<td>'+feature.properties.Name+'</td><td>'+ nlat +'</td><td>'+ nlng +'</td>');
});
}
});
function removeAllMarkers(){
markers.clearLayers();
}
document.querySelector('removeAll').onclick=function(){removeAllMarkers()};
map.addLayer(<?= $i['maplink_var']; ?>);
<?php endforeach; ?>
есть ли ошибка при вызове идентификатора функции? потому что нет уведомления об ошибке, просто когда я нажимаю, ничего не происходит.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Должен был быть document.querySelector('#removeAll') (обратите внимание на знак решетки #) для выбора идентификатора.
Вы не указываете, что такое markers (возможно, это опечатка).
Кроме того, с onclick вы можете присоединить только 1 обратный вызов, поэтому, если вы сделаете это в своем цикле foreach, будет вызываться только последний.
Вероятно, вам лучше использовать промежуточную группу слоев, в которую вы добавляете свои созданные слои GeoJSON, вместо того, чтобы добавлять их напрямую на карту.