Web2Py无法使用jQuery在视图中迭代列表

时间:2013-07-03 23:18:18

标签: jquery web2py

所以我不确定我应该怎样解决这个问题。我只知道这是一个问题。所以我有一个视图,其中有一个列表返回给它的剧集名称。在视图中我有一个带有jQuery调用的按钮,我想在每次按下按钮时循环播放剧集。我创建了一个迭代器,但问题是,如果我在jQuery函数中增加迭代器,它的作用域会阻止它在下次按下按钮时保持它的值,这意味着它只能增加一个。代码类似于这个

$(document).ready(function(){
{{iter = 0}}
$('#nextButton').click(function(){
    {{iter = iter + 1}}
    $('.firstEp').children().remove()
    $('.firstEp').append('<p>epList[iter]</p>')
});

因此,按下按钮可以增加一次但不能增加按钮。我可以用什么来解决这个问题?

2 个答案:

答案 0 :(得分:2)

所以我在python中有一个列表,我想在我的jQuery函数中迭代。为了做到这一点,我必须先把它变成一个javascript数组。我可以用

做到这一点

jsArray{{=XML(response.json(pyList))}}

其中pyList是你的python列表,jsArray是javascript数组。您可以在jQuery事件处理程序中对jsArray执行任何操作。

答案 1 :(得分:1)

$(document).ready(function(){
{{iter = 0}} <-- WEB2PY TEMPLATE CODE
$('#nextButton').click(function(){
    {{iter = iter + 1}} <-- WEB2PY TEMPLATE CODE
    $('.firstEp').children().remove()
    $('.firstEp').append('<p>epList[iter]</p>')
});

假设上面是web2py模板,上面标记的两行是web2py模板代码,它是在将HTML页面返回浏览器之前在服务器上执行的Python。在这种情况下,因为每一行都不以=开头,所以不会将任何内容写入页面,因此写入的Javascript将在这些位置只有空行。相反,您需要在Javascript中编写所有这些内容。