@dev400

Как на js сделать такое?

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

site.com?param&param2&param3
  • Вопрос задан
  • 198 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
<div>
  <label><input type="checkbox" data-param="param1" class="link-changer">param 1</label>
  <label><input type="checkbox" data-param="param2" class="link-changer">param 2</label>
  <label><input type="checkbox" data-param="param3" class="link-changer">param 3</label>
  <label><input type="checkbox" data-param="param4" class="link-changer">param 4</label>
</div>
<div>
  <a href="/test" class="change-on-check">test 1</a><br>
  <a href="/test" class="change-on-check">test 2</a><br>
  <a href="/test" class="change-on-check">test 3</a><br>
</div>

var links = document.getElementsByClassName('change-on-check');
Array.prototype.forEach.call(links, function(link) {
  link.href += '?';
});
Array.prototype.forEach.call(
  document.getElementsByClassName('link-changer'),
  function(checkbox) {
    checkbox.addEventListiner('change', onChange, false);
  }
);

function onChange(event) { 
  var param = '&' + encodeURIComponent(event.target.getAttribute('data-param'));
  var add = event.target.checked;
  Array.prototype.forEach.call(links, function(link) {
    if(add) {
      link.href += param;
    } else {
      link.href = link.href.replace(param, '');
    }
  });
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ArturArturov
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы