JQuery, обращение к элементу через атрибут data-*?
Вполне нормальный селектор, только контекст добавить не мешало бы и использовать $.fn.children (если задача/разметка позволяет):var $item = $('#dataset').children('[data-id="'+id+'"]');
А зачем вообще так делать? Что вам мешает добавить еще один класс в разметку и уже по нему обращаться. Это будет гораздо быстрее, чем через атрибут. 
Опять таки есть нюанс. Дата атрибуты при изменении не меняют своего состояния в разметке. То есть, если у вас был элемент: <li class="demo" data-id='1'>Пункт 1</li>, 
затем его значение дата атрибута поменяли $('demo').eq(0).data('id', 3), 
то вы разметке он все также останется <li class="demo" data-id='1'>Пункт 1</li>. 
Это может привести к проблемам.