JS возвращает undefined | Python | Eel
Не могу решить проблему. Написал программу, вот ее краткое описание: Приложение, логика которого написана на python, а интерфейс отображается с использованием HTML и CSS. В python импортирован модуль eel. В питоне прописана функция, возвращающая массив. В JS создается переменная, принимающая итог функции, и после результат записывается в классы HTML. Вот как это выглядит:
Код python
import eel import datetime import sys eel.init("web") isoWD = datetime.datetime.today().isoweekday() @eel.expose def some_func(): if isoWD == 1: result = ['элементы', 'массива', 'элементы', 'массива', 'элементы', 'массива'] elif isoWD == 2: result = ['элементы', 'массива', 'элементы', 'массива', 'элементы', 'массива'] elif isoWD == 3: result = ['элементы', 'массива', 'элементы', 'массива', 'элементы', 'массива'] elif isoWD == 4: result = ['элементы', 'массива', 'элементы', 'массива', 'элементы', 'массива'] elif isoWD == 5: result = ['элементы', 'массива', 'элементы', 'массива', 'элементы', 'массива'] elif isoWD == 6: result = ['элементы', 'массива', 'элементы', 'массива', 'элементы', 'массива'] elif isoWD == 7: sys.exit() return result eel.start("main.html", size=(325, 450))Код HTML
<div class="wrapper"> <div class="block"> <div class="block__num"><p>(1)</p></div> <div class="block__les"></div> <div class="block__time">09.00 - 09.30</div> </div> <div class="block"> <div class="block__num"><p>(2)</p></div> <div class="block__les"></div> <div class="block__time">09.40 - 10.10</div> </div> <div class="block"> <div class="block__num"><p>(3)</p></div> <div class="block__les"></div> <div class="block__time">10.20 - 10.50</div> </div> <div class="block"> <div class="block__num"><p>(4)</p></div> <div class="block__les"></div> <div class="block__time">11.00 - 11.30</div> </div> <div class="block"> <div class="block__num"><p>(5)</p></div> <div class="block__les"></div> <div class="block__time">11.40 - 12.10</div> </div> <div class="block"> <div class="block__num"><p>(6)</p></div> <div class="block__les"></div> <div class="block__time">12.20 - 12.50</div> </div> <div class="block"> <div class="block__num"><p>(7)</p></div> <div class="block__les"></div> <div class="block__time">13.00 - 13.30</div> </div> <div class="block"> <div class="block__num"><p>(8)</p></div> <div class="block__les"></div> <div class="block__time">13.40 - 14.10</div> </div> </div> <script type="text/javascript" src="/eel.js"></script> <script type="text/javascript"> function display() { var res = eel.some_func(); for (var i = 0; i <= 'block__les'.length; i++) { document.getElementsByClassName('block__les')[i].innerHTML = res[i]; } } display(); </script>
Программа выводит следующее:
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
function display() {
var res = eel.some_func();
var blocks = document.getElementsByClassName('block__les');
console.log(blocks.length, res); // - ?
for (var i = 0; i < blocks.length; i++) {
blocks[i].textContent = res[i];
}
}
display();
