2012-10-13 16 views
15

Mam poniżej kod, który pobiera wartości z siatki. Zamiast drukować wartości, siatka drukuje dane w formacie poniżej obiektu. Jak wydrukować wartości?drukowanie wartości obiektu w jquery

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

KOD:

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

Jakie to wartości? Jak chcesz je wydrukować? – Bergi

+0

następujący format. [{"empId": "1", "fname": "Henry", "lname": "Rey", "empcat": "Staff", "dept": "IT", "jTitle": "Engg Software" , "rAccess": "New Hire", "l Manager": "TigoAdmin", "sDate": "2012-10-11", "eDate": "2012-10-11"}] – user1710288

+0

To jest [JSON] (http : //json.org). Po prostu użyj 'alert (JSON.stringify (rows))' - obiekt 'JSON' jest obsługiwany we wszystkich nowoczesnych przeglądarkach – Bergi

Odpowiedz

35

Prostym sposobem jest użycie

JSON.stringify(rows) 

tj

alert(JSON.stringify(rows)) 

Else, trzeba by ręcznie przechodzić właściwości obiektu i drukować odpowiednio do nich. Podaj więcej szczegółów dotyczących danych wejściowych i pożądanych wyników dla przykładu.

Przykładem w interaktywnych node.js:

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

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

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

następujący format. [{"empId": "1", "fname": "Henry", "lname": "Rey", "empcat": "Staff", "dept": "IT", "jTitle": "Engg Software" , "rAccess": "New Hire", "lManager": "TigoAdmin", "sDate": "2012-10-11", "eDate": "2012-10-11"}] – user1710288

+0

dokładnie to, co stringify robi, robi nie? Poza tym możesz dodać takie dodatkowe informacje do samego pytania, dzięki czemu wątek pytań i odpowiedzi jest lepiej czytelny. –

+0

Czy muszę dołączyć do tego pliki powiązane? Otrzymuję komunikat "JSON is undefined" w IE. – user1710288

0

GetRows Grid zwraca tablicę wierszy. Aby uzyskać pierwszy wiersz: var row = rows [0]. Aby uzyskać drugi wiersz użyj: var row2 = rows [1] i tak dalej.

Aby uzyskać 'fname' wartość komórki z pierwszego rzędu, można to zrobić:

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

otrzymał pomoc od stackoverflow zawierać następujących funkcji 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

W celu wydruku wartość obiektów w JQuery można utworzyć nową tablicę z wartościami i wydrukować ją:

var array = $.map(object, function(value){ 
    return value; 
}) 
Powiązane problemy