为什么Jquery每个函数都停止工作?

时间:2011-09-21 13:02:33

标签: jquery

我的这段代码运作良好,但现在已经停止工作了!!它可能有什么问题? 我使用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中都进行了测试!

加特。

3 个答案:

答案 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>

希望这有帮助。

Demo