23

我有下面的代码从网格中获取值。网格不是打印值,而是以以下对象格式打印数据。如何打印值?

[object Object], [object Object], [object Object], [object Object], [object Object]

代码:

$(document).ready(function () {
    $("#check").click(function(){
        var rows = $('#jqxgrid').jqxGrid('getrows');
        alert(rows);
    });
});        
4

4 回答 4

55

一个简单的方法是使用

JSON.stringify(rows)

IE

alert(JSON.stringify(rows))

否则,您将需要手动遍历对象的属性并相应地打印它们。举例说明有关输入和所需输出的更多详细信息。

交互式 Node.js 中的示例:

> x = { 1: 2, 3:4 };
{ '1': 2, '3': 4 }

> x.toString();
'[object Object]'

> JSON.stringify(x)
'{"1":2,"3":4}'
于 2012-10-13T23:07:30.750 回答
1

为了在 JQuery 中打印对象的值,您可以使用值创建一个新数组并打印它:

var array =  $.map(object, function(value){
    return value;
})
于 2015-07-15T11:23:47.033 回答
0

从 stackoverflow 获得帮助,包括以下 jquery 函数:

   The result will be equivalent to the PHP function print_r.
   echo '<pre>' . print_r($data) . '</pre>';

   USAGE: 
   var data = [{'id':1,'name':'hello'},'world'];
   $('#element').print_r(data);

//==========================================
(function($) {

    $.fn.print_r = $.fn.print = function(variable){
        return this.each(function(){
        if(typeof variable == 'object'){
            var string = $.print_r.objectToString(variable,0);
            $(this).html(string);
        } else {
            $(this).html('<pre>'+variable.toString()+'</pre>');
        }
    });

    }

    $.print_r = {
            objectToString : function (variable,i){
              var string = '';
              if(typeof variable == 'object' && i < 3){ // 3 is to prevent endless recursion, set higher for more depth
                  string += 'Object ( <ul style="list-style:none;">';
                  var key;
                  for(key in variable) {
                      if (variable.hasOwnProperty(key)) {
                        string += '<li>['+key+'] => ';
                        string += $.print_r.objectToString(variable[key],i+1);
                        string += '</li>';
                      }
                  }
                  string += '</ul> )';
              } else {
                  string = variable.toString();
              }
              return string;
        }
    }

})(jQuery)
于 2013-09-28T11:22:22.030 回答
0

Grid 的 getrows 返回一个行数组。获取第一行:var row = rows[0]。要获得第二行,请使用: var row2 = rows[1] 等等。

要从第一行获取“fname”单元格值,您可以执行以下操作:

var rows = $("#grid").jqxGrid('getrows');
var firstRow = rows[0];
var fnameValue = firstRow.fname;
于 2012-10-17T05:29:09.160 回答