Ребят, только начинаю осваивать JS, помогите. Почему не срабатывает код? (Ошибка: message": "TypeError: spanText.indexOf is not a function")

let spanText = document.getElementById('spanText');
let btn = document.getElementById('btn');

btn.addEventListener('click', function() {
  if (spanText.indexOf('@')) {
    spanText.style.color = 'red';
  }
})
button {
  display: block;
  margin-top: 10px;
}
<span id='spanText'>Если в тексте есть @ то меняем цвет на красный.</span>
<button id='btn'>OK</button>


Ответы (1 шт):

Автор решения: Grundy

spanText - это HTMLElement - у него нет метода indexOf.

Если нужно получить текст из элемента - можно воспользоваться свойством textContent

let spanText = document.getElementById('spanText');
let btn = document.getElementById('btn');

btn.addEventListener('click', function() {
  if (spanText.textContent.indexOf('@')) {
    spanText.style.color = 'red';
  }
})
button {
  display: block;
  margin-top: 10px;
}
<span id='spanText'>Если в тексте есть @ то меняем цвет на красный.</span>
<button id='btn'>OK</button>

→ Ссылка