2016-05-26 4 views
0

ich einige Werte auf eine JavaScript-Funktion von einem Anker-Tag vorbei wie folgt:Erste Werte aus einer Javascript Object

<a href="http:///www.example.com" data-json='{ "next_id": 3, "prev_id":1}' id="2">Click here</a> 

Die js Funktion ein bisschen wie folgt aussieht:

$(document).on('click', 'a', function(event) { 
    console.log($(this).data()); 
    var this_id = this.id; 
    var next_id = $(this).data(next_id); 
    var prev_id = $(this).data(prev_id); 
} 

Die Konsole zeigt die folgende für $ (this) .data()

Object {json: Object} 
    json: Object 
     next_id: 3 
     prev_id: 1 

Aber jeder Versuch, die Werte von next_id oder prev_id zu lesen fehlschlagen:

var prev_id = $(this).data(prev_id); 

gibt nur [object Object]

var prev_id = $(this).data("prev_id"); 

oder

var prev_id = $(this).data('prev_id'); 

Returns Undefined

Ich glaube, ich bin etwas ziemlich offensichtlich fehlt - wirklich dankbar für alle Hinweise

+1

try console.log ($ (this) .data() json.next_id.); es wird dir den richtigen Wert geben. – Manish

Antwort

4

Sie müssen die JSON mit .data(key), wobei key ist json, dann können Sie die next_id oder prev_id Eigenschaft erhalten.

Verwenden

var next_id = $(this).data('json').next_id; 
+0

Das funktioniert perfekt. Vielen Dank –