JQuery - 如何将行的<input />值放入列表中

时间:2013-08-13 16:47:53

标签: jquery

我有一个表格,每行都有一个复选框输入。当href =“#”class =“up”或点击href =“#”class =“down”时,我想将此输入的所有值(有序)放入var列表中(向上移动一行或向下)。

总之,我想知道如何在整个表中调用“checkbox input”的dom元素“value”。

表:

            <table>
            //first row
            <tr>
            <td><a href="/ezmapping/layer/edit/1">ra_general.shp, burton449</a></td>
            <td><label for="id_layers_0"><input checked="checked" type="checkbox" id="id_layers_0" value="1" name="layers"/></label></td>
            <td><a href="/ezmapping/map/super/LayerStyle/1">Style</a></td>
            <td>
                <a href="#" class="up"><img src="/static/main/img/arrow_up.png"></a>
                <a href="#" class="down"><img src="/static/main/img/arrow_down.png"></a>
            </td>
            </tr>
            .
            .
            .
            </table>

jquery(上下移动行)

  $(document).ready(function(){
      $(".up,.down").click(function(){
          var row = $(this).parents("tr:first");
          if ($(this).is(".up")) {
              row.insertBefore(row.prev());
          } else {
              row.insertAfter(row.next());
          }
      });
  });

2 个答案:

答案 0 :(得分:1)

尝试

$(document).ready(function(){
      $(".up,.down").click(function(){
          var row = $(this).parents("tr:first");
          if ($(this).is(".up")) {
              row.insertBefore(row.prev());
          } else {
              row.insertAfter(row.next());
          }
          var list = []; 
          $('input[name="layers"]').each(function(index, value) {
             list.push(value);

          });
          console.log(list);

      });
  });

答案 1 :(得分:1)

var checks = new Array();
$(this).parents("table").find("input:checkbox").each(function() {
  checks.push($(this).is(":checked"));
});

这会将所有复选框值收集到一个数组中。您可以在重新订购之前或之后放置它。

JSFiddle Demo