Вы явно запутались.
$(elem).attr('data-info', val);. это установка атрибута
прочитать этот атрибут можно вот так
$(elem).attr('data-info');
Это же
$( this ).data('code');
не получение значения атрибута, а получение данного из обьекта data для этого элемента
который устанавливается следующим образом $(elem).data("code", value);