Как подсчитать кол-во букв, игнорируя HTML теги?
Высота дива высчитывается исходя из количество букв заголовка. При этом, нужно чтобы заголовок был в теге <span>, а высота должна указываться у дива.
Как мне посчитать кол-во букв внутри тега <span> и без пробелов?
$('.textfill-departments').each(function() {
var el = $(this);
var textLength = el.html().length;
if (textLength < 50) {
el.css('height', '65px');
} else if (textLength > 50) {
el.css('height', '35px');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="textfill-departments department-title">
<span><?php print $title; ?></span>
</div>
Ответы (2 шт):
Автор решения: Denis640Kb
→ Ссылка
Берём первый вложенный элемент текущего элемента, получаем из него текст, разбиваем текст по пробелу, склеиваем текст без пробела:
var textLength= this.children[0].innerText.split(' ').join('').length;
Воспрооизводимый пример:
$('.textfill-departments').each(function(){
let el = $(this);
var textLength= this.children[0].innerText.split(' ').join('').length;
if (textLength < 50) {
console.log('меньше 50');
el.css('height', '65px');
}
else if (textLength > 50) {
console.log('больше 50');
el.css('height', '35px');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="textfill-departments department-title">
<span><?php print $title; ?></span>
</div>
Автор решения: teran
→ Ссылка
Добавьте класс заголовку. И если там может содержатся внутри разметка, то
вместо html() используйте text()
$('.textfill-departments').each(function(){
let len = $(this).children(".title").text().replace(/\s/g, '').length;
let w = len > 50 ? '35px' : '65px';
$(this).css('height', w);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="textfill-departments">123 <span class="title">qwe</span></div>