<ol>
<li>
<span>Не готов</span>
<audio src="TRACK" preload="metadata"></audio>
</li>
<li>
<span>Не готов</span>
<audio src="TRACK" preload="metadata"></audio>
</li>
</ol>
На страницe находится несколько ol
. Это плейлисты. У них нет ни идентификаторов, ни классов.
Как пройтись циклом по всем ol
их li
, проверить состояние всех audio, которые в них находятся используя readyState
и если оно равно 4, то заменить текст в этом li span
на готов
?
Учитывая то, что плейлисты могут создаваться динамически, то проходить циклом нужно будет ежесекундно. Если это будет вызывать нагрузку, то буду проверять динамические плейлисты отдельно.
Пробую так. Возвращает undefined
$('ol li').find('audio').each(function() {
console.info($(this).readyState);
})
$(this)
возвращает враппер над дом элементом, а не сам элемент. а вот this внутри функции указывает на сам элемент:
$('ol li').find('audio').each(function() {
console.info(this.readyState);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ol>
<li>
<span>Не готов</span>
<audio src="TRACK" preload="metadata"></audio>
</li>
<li>
<span>Не готов</span>
<audio src="TRACK" preload="metadata"></audio>
</li>
</ol>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab