Что касается варианта:
$(function() {
var btn = $('#buy :radio').change(function() {
var a = this, b = btn.not(this).filter(':checked')[0], f = {}
if(b) {
$.each(DATA.variable, function() {
if(this.item_variation[a.name]==a.value && this.item_variation[b.name]==b.value)
f.id = this.item_id;
f.img = this.item_image;
f.price = this.item_price;
});
console.log(f);
}
});
});
Не могу понять, почему id меняется, а price и img остаётся прежними.