Про innerHTML в javaScript [дубликат]

184
22 сентября 2021, 02:30
На этот вопрос уже дан ответ здесь:
Почему идет ошибка like.addEventListener is not a function? (1 ответ)
Закрыт 1 год назад.

У меня этот скрипт работает:

<button class="number" id="num" onclick="getNumber()">
    1
</button>
<script>
    function getNumber(){
        alert(document.getElementById('num').innerHTML); // 1
    }
</script>

Но почему не работает тоже самое по классу?

<button class="number" id="num" onclick="getNumber()">
    1
</button>
<script>
    function getNumber(){
        alert(document.getElementsByClassName('number').innerHTML); // undefined
    }
</script>
Answer 1

Потому что document.getElementById возвращает один элемент (или null), а document.getElementsByClassName возвращает коллекцию элементов (может быть - пустую).

<button class="number" id="num" onclick="getNumber()">1</button> 
<button class="number" id="num" onclick="getNumber()">2</button> 
<script> 
  function getNumber() { 
    [...document.getElementsByClassName('number')].forEach(item => console.log(item.innerHTML)); 
  } 
</script>

Или Вам вот это надо?:

<button class="number" id="num" onclick="getNumber(this)">1</button> 
<button class="number" id="num" onclick="getNumber(this)">2</button> 
<script> 
  function getNumber(item) { 
    console.log(item.innerHTML); 
  } 
</script>

Answer 2
alert(document.getElementsByClassName('number')[0].innerHTML);
READ ALSO
Вывести объекты на страницу [закрыт]

Вывести объекты на страницу [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

109
Остановка autoplay в swiper слайдер при наведении

Остановка autoplay в swiper слайдер при наведении

Хочу использовать swiper слайдерЯ уже разобрался как сделать автоматическое перелистывание картинок

96
Как найти MBR в img файле

Как найти MBR в img файле

За основу своего проекта хочу позаимствовать части исходников WinDiskImager

90