我的这段代码运作良好,但现在已经停止工作了!!它可能有什么问题? 我使用JQuery .each函数循环遍历表行,
HTML:
<form method="POST" action="/post_updates/" onSubmit="return postUpdates()" >
<table id="mytable" class="table">
<thead>
<tr>
<th>col 1</th>
<th>col2 </th>
</tr>
</thead>
<tbody>
!-- rows are created dynamically --
{% for object in object_list %}
<tr>
<td id="row">{{object.id}}</td>
!-- other td's --
</tr>
{% endfor %}
</tbody>
</table>
使用Javascript:
<script type="text/javascript" >
function postUpdates(){
$("#mytable tr:gt(0)").each( function () {
// this code NEVER get executed
var rowid = $(this).find("#row").html();
// .. does alot of stuff with rowid!!
});
}
我确定这是有效的,但它刚刚停止。在Chrome和Firefox中都进行了测试!
加特。
答案 0 :(得分:7)
$("#mytable tr:gt(0)").each( function() {
// this code NEVER get executed
var rowid = $(this).find("row").html();
});
你的选择器也遗漏了一些东西......我在你的问题上假设问题出在那之前,但是.find("row")
通常不会找到一些东西。
答案 1 :(得分:5)
缺少parens:
$("#mytable tr:gt(0)").each( function() {
^^
更新:您正在使用具有多个元素的相同id
,这是不允许的。将id="row"
更改为class="row"
,然后使用选择器.find(".row")
。
答案 2 :(得分:0)
下面是脚本引擎呈现标记后的标记。注意onSubmit函数的更改以及调用之前函数的声明。当你使用jquery时,你应该考虑使用它们的事件绑定api。在这种情况下,您应该使用submit event
<script type="text/javascript">
function postUpdates(){
$("#mytable tr:gt(0)").each( function () {
// this code NEVER get executed
alert( $(this).find("#row").html());
// .. does alot of stuff with rowid!!
});
}
</script>
<form method="POST" action="" onSubmit="postUpdates()" >
<table id="mytable" class="table">
<thead>
<tr>
<th>col 1</th>
<th>col2 </th>
</tr>
</thead>
<tbody>
<tr>
<td id="row">test</td>
<td>test2</td>
</tr>
</tbody>
</table>
<input type="submit" />
</form>
希望这有帮助。