为了账号安全,请及时绑定邮箱和手机立即绑定

JS不显示结果| 蟒蛇 | 鳗鱼

JS不显示结果| 蟒蛇 | 鳗鱼

至尊宝的传说 2023-07-06 19:55:00
我无法解决这个问题。我写了一个程序,这是它的简短描述:一个应用程序,其逻辑用python编写,界面使用HTML和CSS呈现。Python 导入模块eel。Python 有一个返回数组的函数。在 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 = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems']     elif isoWD == 2:         result = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems']     elif isoWD == 3:         result = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems']     elif isoWD == 4:         result = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems']     elif isoWD == 5:         result = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems']     elif isoWD == 6:         result = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems']     elif isoWD == 7:         sys.exit()     return result eel.start("main.html", size=(325, 450))
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

为了获得从暴露给 eel 的 python 函数发送的结果,javascript 函数display应该成为异步函数,并且我们应该等待来自 python 函数的结果。


因此,显示函数变为:


<script type="text/javascript">

async function display() {

  var res=await eel.some_func()();

  for (var i = 0; i <= document.getElementsByClassName('block__les').length ; i++) {

    document.getElementsByClassName('block__les')[i].innerHTML = res[i];

  }

}

display();

</script>

还有一点需要提到,但与 'block__les' 无关eel,在display函数中,'block__les'.length并没有给出 'block__les' 类的项目数,但它给出了单词 的字符数block__les,即10。


为了排序 'block__les' 类的项目数量,我们可以使用document.getElementsByClassName('block__les').length,它给出8,正确的数字。


当然,别忘了放


<script type="text/javascript" src="/eel.js"></script>

在头部部分main.html


最后不要忘记更改:


result = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems']

变为 8 个项目,以匹配 HTML 中显示的项目数。


result = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems', 'elems', 'elems']


查看完整回答
反对 回复 2023-07-06
  • 1 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信