Проведя много исследований и тестирований, я собрал несколько фрагментов, чтобы получить почти 100%, благодаря нескольким статьям стека (например, Как щелкнуть, чтобы показать, и Нажать, чтобы позвонить? ).
Учитывая несколько контейнеров, как показано:
<div class="entry-details">
<p class="phone">+18885551212,,,111</p>
<p class="address">111 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
<div class="entry-details">
<p class="phone">+18885551212,,,222</p>
<p class="address">222 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
<div class="entry-details">
<p class="phone">+18885551212,,,333</p>
<p class="address">333 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
<div class="entry-details">
<p class="phone">+16665551200</p>
<p class="address">444 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
Цель onClick:
- Копировать текст поля p.phone в href;
- Обернуть поле p.phoneс тегом href tel;
- Заменить содержимое p.phone на «Click to Call»;
- При нажатии показать номер в формате # + ext (например, 888-555-1212 Ext 222)если присутствуют запятая и добавочный номер, в противном случае используйте стандартный телефон (например, 888-555-1212).
- и, наконец, наберите #, включая паузы (запятые);
jQuery(document).ready(function($) {
$('.phone').wrapInner('<a class="phone-link" href=""></a>');
$('.phone').each(function() {
var $phoneLink = $(this).find('.phone-link');
var _linkUrl = $phoneLink.text();
$(this).find('a.phone-link').attr('href', 'tel:' + _linkUrl).text('Click to Call');
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="entry-details">
<p class="phone">+18885551212,,,111</p>
<p class="address">111 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
<div class="entry-details">
<p class="phone">+18885551212,,,222</p>
<p class="address">222 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
<div class="entry-details">
<p class="phone">+18885551212,,,333</p>
<p class="address">333 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
<div class="entry-details">
<p class="phone">+16665551200</p>
<p class="address">444 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
Я написал еще одну функцию для финальной части (меняя Click to Call на click), но
- Не сделалработа
- Он изменил все экземпляры .phone при нажатии.