@kunjut19

Как изменить стиль только одного span, когда пробегаешься по ним с помощью getElementsByClassName?

У меня есть плитка из мелких div'ов, внутри которых слова. Так как div'ы небольшие, то длинные слова в них не помещаются. Поэтому я решил немного уменьшать шрифт, если слово слишком длинное. Но проблема в том, что когда пробегаешься по всем этим плиткам и встречаешь такую, где слово длинное, то шрифт уменьшается у всех плиток (а мне нужно только у тех, в которых текст сверхдлинный).
javascript:
var tiles = document.getElementsByClassName('tile');
	for (var i=0; i<tiles.length; i++) {
		var textLength = tiles[i].textContent.length;
		var fontSize = window.getComputedStyle(tiles[i].querySelector('span')).fontSize;

	  if(textLength > 6) {
		  tiles[i].querySelector('span').style.fontSize = "0.6rem";
    } 
}

html:
<div class="tile">
    <span>жуткодлинноеслово</span>
</div>
<div class="tile">
    <span>дом</span>
</div>
<div class="tile">
    <span>река</span>
</div>


Как избежать подобного конфуза? И вообще, есть ли решение получше (в плане кода)?
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы