Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как скрыть часть номера телефона? (https://javascript.ru/forum/dom-window/74439-kak-skryt-chast-nomera-telefona.html)

Nexus 12.07.2018 12:01

LADYX, html-код вставляете как текст в текстовый узел.

LADYX 12.07.2018 12:09

Nexus,
так вот же:
item.textContent=item.textContent.replace(item.__hiddenPart,'<span class='phone_number_xxxx'>xxxx</span>');

или я неправильно понимаю?

Nexus 12.07.2018 12:16

LADYX, вы значение свойства textContent изменяете, html будет в обычный текст преобразован.
item - ссылка на текстовый узел. Как в него html затолкать - не представляю.
Можно на основе этого элемента создать span и заменить текст этим span'ом и дальше работать с ним.

рони 12.07.2018 12:19

Цитата:

Сообщение от LADYX
,'<span class='phone_number_xxxx'>xxxx</span>');

внутри строки и снаружи должны быть разные кавычки или внутри \'

LADYX 12.07.2018 12:20

Nexus,
что-то типа этого?
$(".phone_number").html(function(index, text) {
	return text.replace(new RegExp("xxxx", 'g'), "<span class='phone_number_xxxx'>xxxx</span>")
});

Nexus 12.07.2018 12:29

LADYX, так listener'ы отвалятся, но можете попробовать.

LADYX 12.07.2018 12:33

Nexus,
ну да, замена идет, но при попытке показать номер неудача

j0hnik 12.07.2018 13:07

<style>
	.phone_number_xxxx{
		padding-right:10px;
	}
</style>
	<span class="phone_number">+74951182647<span class="phone_number_active">Показать</span></span><br>
	<span class="phone_number">+74951182647<span class="phone_number_active">Показать</span></span>
	<script>
		[].forEach.call(document.querySelectorAll('.phone_number'),function(el){
			var hide = /(\d{4})[А-Я\s]/.exec(el.textContent)[1];
			el.innerHTML = el.innerHTML.replace(hide, '');
			var btn = el.querySelector('.phone_number_active');
			btn.insertAdjacentHTML('beforebegin', '<span class="phone_number_xxxx">xxxx</span>');
			var xxx = el.querySelector('.phone_number_xxxx');
			btn.onclick = function(){
				xxx.textContent = xxx.textContent.replace(/xxxx/, hide);
			};
		});
</script>

Dilettante_Pro 12.07.2018 13:21

Еще вариант
<style>
.phone_number { 
   background: linear-gradient(to right, white 0%, black 50%);
}
.phone_number_active { background-color:white;}
</style>
<span class="phone_number">+74953332211<span class="phone_number_active"> Показать</span></span>
<script>
document.querySelector(".phone_number_active").onclick = function() {
    document.querySelector(".phone_number").style.background = "white";
}
</script>

j0hnik 12.07.2018 13:34

Dilettante_Pro,
:lol:


Часовой пояс GMT +3, время: 20:01.