Как изменить размер шрифта текста в div в javascript

У меня есть сетка, и в некоторых элементах сетки текст слишком длинный. Я уже добавил text-overflow: ellipsis, white-space: nowrap и overflow: hidden. Это предотвращает переполнение текста, как ожидалось. но я хотел попробовать определить, есть ли переполнение, и если да, то уменьшить размер шрифта.

Ниже приведен JavaScript, который я пытался. в основном он должен перебирать все строки данных и, если обнаружено переполнение, изменить размер шрифта. Это не обязательно должен быть Javascript, но я подумал, что это мой лучший шанс добиться этого. однако код не меняет размер шрифта, может ли кто-нибудь помочь мне с изменением размера шрифта? в Javascript, jQuery, CSS и т. д.

document.addEventListener('DOMContentLoaded', function() {
   //the div is called data_row adn tehy are dynamically generated
  var text_size = document.getElementsByClassName('data_row');

  for (var i = 0; i < text_size.length; i++) {
    if (text_size.scrollWidth > text_size.clientWidth) {
       //i also tried a specific font size ex. 12px
      text_size.style.fontSize = "small";
    }
  }
});

.data_row {
  text-align: center;
  border: 1 px solid;
  line-height: 25 px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

Вместо этого используйте forEach для связанного дубликата. Это намного чище. Основная проблема с вашим кодом заключается в том, что вы пытаетесь изменить style как свойство вашего массива. Вам нужно будет выбрать его по индексу.

isherwood 30.03.2022 18:43
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
43
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ваша переменная text_size на самом деле является своего рода массивом. Вы должны обратиться к text_size[i], если хотите получить доступ к стилю и т.д.

Ваше здоровье.

function change(){
  const text = document.getElementById('text');
  text.style.fontSize='36px';
}
<p id = "text" style = "font-size: 16px">lorem ipsum ...</p>
<button onclick = "change()">change</button>

Другие вопросы по теме