• Воспроизведение аудио?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Полностью обойти не получится, ибо политика против агрессивного воспроизведения звука.
    Звук, что у video что у audio, можно включать только синхронно по действию пользователя.
    В blink (chrome, chromium, etc.) прокатит хак, если на действие пользователя вызвать метод load(), после play() можно вызывать когда угодно. Однако хак не работает в AppleWebkit (Safari на osX, любой браузер на iOS).

    Кроме того, эту ситуацию можно отлавливать. В современных браузерах метод play возвращает промис, который резолвится после удачного запуска и реджектится при неудачном (как в Вашем примере).
    Ответ написан
    3 комментария
  • Почему не работает поиск по классу?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Обратите внимание, что есть методы который .getElemtByX(), а есть .getElemtsByX(). Логично предположить, что .getElements() будет возвращать вам массив элементов, по этому эта строка у вас и не работает:

    document.getElementsByClassName('child2').textContent = 'Измененная строка 2'; // не работает!
    Ответ написан
    5 комментариев
  • Почему не работает поиск по классу?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Что возвращает метод getElementsByClassName()?

    console.log(document.getElementsByClassName('child2')) // HTMLCollection

    Какому элемент Вы собрались изменять текст (textContent), если там целая html коллекция?

    Вначале, необходимо обойти коллекцию, одним из способов ниже:
    // old
    Array.from(document.getElementsByClassName('child2')).forEach((el) => {
        el.textContent = 'Измененная строка 2';
    });
    
    // new
    document.querySelectorAll('.child2').forEach((el) => {
      el.textContent = 'Измененная строка 2';
    });
    Ответ написан
    Комментировать