在多维数组中添加复选框选定值的问题

时间:2014-10-01 03:59:57

标签: javascript jquery

请您查看this demo并告诉我如何将每个选定的行添加为data []的数组,以便它看起来像这样:

[{"Cell phone":"BlackBerry Bold 9650","Rating":"2/5","Location":"UK"},
{"Cell phone":" Samsung Galaxy","Rating":"3/5","Location":"US"}]

这是我的代码:

var data = [];
function myfunc(ele) {

 var values = new Array();
       $.each($("input[name='case[]']:checked").closest("td").siblings("td"),
              function () {
                   values.push($(this).text());
              });

       alert("val---" + values.join (", "));
 }


$(document).ready(function() {
    $("input.case").click(myfunc);
});

由于

2 个答案:

答案 0 :(得分:0)

检查这是否有效,

这是fiddle demo

var data = [];
function myfunc(ele) {

 var values = [];
 var keys = [];
   $.each($("input[name='case[]']:checked").closest("table").find('th'),
          function () {
              keys.push($(this).text());
          });

 keys.shift(); // to remove the first key
 var len = keys.length, obj={}, ctr=0;
   $.each($("input[name='case[]']:checked").closest("td").siblings("td"),
          function () {
                obj[keys[ctr]]=$(this).text();
                ctr++;
                if(ctr==len){
                    values.push(obj);
                    obj={};
                    ctr=0;
                }

          });

   alert("val---" + JSON.stringify(values));
 }


$(document).ready(function() {
    $("input.case").click(myfunc);
});

答案 1 :(得分:0)

http://jsfiddle.net/ugdas2em/

试试这个:

var data =  {};
function myfunc(ele) {

    //var values = new Array();
    var k = 0;
    var j = 0;
    data[k] =  {};
    $.each($("input[name='case[]']:checked").closest("td").siblings("td"),
                 function () {  
                     if(j==3)
                     {
                          k = k+1;
                          data[k] =  {};             
                          j = 0;
                     }                 
                     //values.push($(this).text());
                     data[k][j] = $(this).text();
                     j=j+1;

                  });

           console.debug(data);    
           //alert("val---" + values.join (", "));
     }


$(document).ready(function() {
    $("input.case").click(myfunc);
});

注意:如果您愿意,可以在我的代码中使用带有数据变量的[]代替{}。你需要在三个地方更换。感谢。