Показать сообщение отдельно
  #23 (permalink)  
Старый 13.07.2018, 23:31
Аспирант
Отправить личное сообщение для Ermite Посмотреть профиль Найти все сообщения от Ermite
 
Регистрация: 20.10.2015
Сообщений: 32

Хотелось коротко, получилось как всегда)

<span class="phone_number">+74953332211<span class="phone_number_active"> Показать</span></span><br>
<span class="phone_number">+74953332011<span class="phone_number_active"> Показать</span></span>
<script>
(function() {
  const classNamePhone = 'span.phone_number';      
  const count = 4; // сколько чисел менять
  const hideText = "X".repeat(count); // каким символом менять
  
  document.querySelectorAll(classNamePhone).forEach((item) => {     
    replaceNumber(item);    
    item.lastChild.addEventListener("click", (e) => {
      const parent = e.target.parentElement;
      const fChild = parent.firstChild;
      if (!fChild.__hideNumber) {
        replaceNumber(e.target.parentElement);
        e.target.innerHTML = " Показать";
      } else {
        fChild.nodeValue = fChild.nodeValue.replace(hideText, fChild.__hideNumber);
        fChild.__hideNumber = false;
        e.target.innerHTML = " Скрыть";
      }
    });
  });  
  
  function replaceNumber(item) {
    const val = item.firstChild.nodeValue;
    item.firstChild.__hideNumber = val.substr(-count);
    item.firstChild.nodeValue = val.substr(0, val.length - count) + hideText;
  }
})();
</script>
Ответить с цитированием