Ничего не произошло при вызове функции удаления слоя на листовке

Я пытаюсь вызвать функцию для очистки слоя. Но ничего не произошло, используя это

<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; ?>

есть ли ошибка при вызове идентификатора функции? потому что нет уведомления об ошибке, просто когда я нажимаю, ничего не происходит.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
108
1

Ответы 1

Должен был быть document.querySelector('#removeAll') (обратите внимание на знак решетки #) для выбора идентификатора.

Вы не указываете, что такое markers (возможно, это опечатка).

Кроме того, с onclick вы можете присоединить только 1 обратный вызов, поэтому, если вы сделаете это в своем цикле foreach, будет вызываться только последний.

Вероятно, вам лучше использовать промежуточную группу слоев, в которую вы добавляете свои созданные слои GeoJSON, вместо того, чтобы добавлять их напрямую на карту.

Другие вопросы по теме