|
12.07.2018, 12:01
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
LADYX, html-код вставляете как текст в текстовый узел.
|
|
12.07.2018, 12:09
|
|
Профессор
|
|
Регистрация: 19.02.2015
Сообщений: 219
|
|
Nexus,
так вот же:
item.textContent=item.textContent.replace(item.__hiddenPart,'<span class='phone_number_xxxx'>xxxx</span>');
или я неправильно понимаю?
|
|
12.07.2018, 12:16
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
LADYX, вы значение свойства textContent изменяете, html будет в обычный текст преобразован.
item - ссылка на текстовый узел. Как в него html затолкать - не представляю.
Можно на основе этого элемента создать span и заменить текст этим span'ом и дальше работать с ним.
|
|
12.07.2018, 12:19
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от LADYX
|
,'<span class='phone_number_xxxx'>xxxx</span>');
|
внутри строки и снаружи должны быть разные кавычки или внутри \'
|
|
12.07.2018, 12:20
|
|
Профессор
|
|
Регистрация: 19.02.2015
Сообщений: 219
|
|
Nexus,
что-то типа этого?
$(".phone_number").html(function(index, text) {
return text.replace(new RegExp("xxxx", 'g'), "<span class='phone_number_xxxx'>xxxx</span>")
});
|
|
12.07.2018, 12:29
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
LADYX, так listener'ы отвалятся, но можете попробовать.
|
|
12.07.2018, 12:33
|
|
Профессор
|
|
Регистрация: 19.02.2015
Сообщений: 219
|
|
Nexus,
ну да, замена идет, но при попытке показать номер неудача
|
|
12.07.2018, 13:07
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
<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>
Последний раз редактировалось j0hnik, 12.07.2018 в 13:34.
|
|
12.07.2018, 13:21
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Еще вариант
<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>
|
|
12.07.2018, 13:34
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Dilettante_Pro,
|
|
|
|