2012-10-13 60 views
15

Tôi có mã dưới đây nhận giá trị từ lưới. Thay vì in các giá trị, lưới sẽ in dữ liệu ở định dạng đối tượng bên dưới. Làm thế nào để in giá trị?giá trị in ấn của đối tượng trong jquery

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

Mã sản phẩm:

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

Giá trị nào? Bạn muốn chúng được in như thế nào? – Bergi

+0

định dạng sau. [{"empId": "1", "fname": "Henry", "lname": "Rey", "empcat": "Staff", "dept": "IT", "jTitle": "Software Engg" , "rAccess": "Thuê mới", "lManager": "TigoAdmin", "sDate": "2012-10-11", "eDate": "2012-10-11"}] – user1710288

+0

Đó là [JSON] (http : //json.org). Chỉ cần sử dụng 'alert (JSON.stringify (rows))' - đối tượng 'JSON' được hỗ trợ trong mọi trình duyệt hiện đại – Bergi

Trả lời

35

Một cách đơn giản là sử dụng

JSON.stringify(rows) 

tức

alert(JSON.stringify(rows)) 

khác, bạn sẽ cần phải tự đi qua thuộc tính của đối tượng và in chúng cho phù hợp. Cung cấp thêm chi tiết về đầu vào và đầu ra mong muốn cho một ví dụ.

Một ví dụ trong Node.js tương tác:

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

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

> JSON.stringify(x) 
'{"1":2,"3":4}' 
+0

định dạng sau. [{"empId": "1", "fname": "Henry", "lname": "Rey", "empcat": "Staff", "dept": "IT", "jTitle": "Software Engg" , "rAccess": "Thuê mới", "lManager": "TigoAdmin", "sDate": "2012-10-11", "eDate": "2012-10-11"}] – user1710288

+0

chính xác những gì stringify làm, doesn phải không? bên cạnh đó, bạn có thể thêm các thông tin bổ sung đó vào chính câu hỏi, nó làm cho chuỗi Q & A tốt hơn để đọc. –

+0

Tôi có cần bao gồm bất kỳ tệp liên quan nào cho điều này không? Tôi nhận được lỗi "JSON không xác định" trong IE. – user1710288

0

getrows Lưới của trả về một mảng của hàng. Để có được hàng đầu tiên: var row = rows [0]. Để sử dụng hàng thứ hai: var row2 = rows [1] v.v.

Để có được giá trị của ô 'fname' từ hàng đầu tiên, bạn có thể làm điều này:

var rows = $("#grid").jqxGrid('getrows'); 
var firstRow = rows[0]; 
var fnameValue = firstRow.fname; 
0

Got sự giúp đỡ từ stackoverflow, Bao gồm sau chức năng 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) 
1

Để in giá trị của các đối tượng trong JQuery, bạn có thể tạo một mảng mới với các giá trị và in nó:

var array = $.map(object, function(value){ 
    return value; 
}) 
Các vấn đề liên quan