2016-03-23 11 views
1

Ich habe eine Funktion, die die Daten innerhalb der API-Funktion tr am nächsten anzeigt. Das Problem ist, dass sie den nächsten tr nicht finden können. Hier ist mein Code:Wie findet man den nächstgelegenen tr innerhalb der API-Funktion?

$('.pricing_level').on('change', function(e){ 
    var pricing_level_id = e.target.value; 
    $('tbody.subcontent tr').each(function(){ 
     var item_id = $(this).closest('tr').find(".details_itemid").val(); 

     var category_id = $(this).closest('tr').find(".details_category_id").val(); 
     var subcategory_id = $(this).closest('tr').find(".details_subcategory_id").val(); 
     var net_unit_price = $(this).closest('tr').find(".details_unitprice").val(); 

     $.get('/dev/api/itempricinglevel?item_id=' + item_id + '&pricinglevel_id=' + pricing_level_id, function(itempricinglevel){ 

      $(this).closest('tr').find(".details_unitprice").val(itempricinglevel.min); 
     }) 
    }) 
}) 
+0

Ihre 'tr' mit diesen Klassennamen' details_category_id' oder Kinder innerhalb tr –

+0

diesen Klassennamen zu haben, was Ihre 'this' zu zeigen. haben Sie es debuggen –

+0

Warum nicht auch Ihren HTML-Code? – Shashank

Antwort

1

Assign this Variablen in eine andere vor dem Ajax-Aufruf gemacht wird, weil innerhalb der Ajax die this Variable vom jqXHR Ziel der Ajax-Aufruf überschrieben wird.

$('.pricing_level').on('change', function(e){ 
    var pricing_level_id = e.target.value; 
    $('tbody.subcontent tr').each(function(){ 
     var item_id = $(this).closest('tr').find(".details_itemid").val(); 

     var category_id = $(this).closest('tr').find(".details_category_id").val(); 
     var subcategory_id = $(this).closest('tr').find(".details_subcategory_id").val(); 
     var net_unit_price = $(this).closest('tr').find(".details_unitprice").val(); 
     var that = this; 

     $.get('/dev/api/itempricinglevel?item_id=' + item_id + '&pricinglevel_id=' + pricing_level_id, function(itempricinglevel){ 
      $(that).closest('tr').find(".details_unitprice").val(itempricinglevel.min); 
     }) 
    }) 
}) 
Verwandte Themen