À l'aide de $('[data-whatever="myvalue"]')
permettra de sélectionner quoi que ce soit avec les attributs html, mais dans les nouvelles jQueries il semble que si vous utilisez $(...).data(...)
attacher des données, il utilise de la magie navigateur truc et n'affecte pas le html, donc n'est pas découvert par .find
comme indiqué dans la réponse précédente.
Vérifier (testé avec la 1.7.2+) (voir aussi le violon): (mis à jour pour être plus complet)
var $container = $('<div><div id="item1"/><div id="item2"/></div>');
// add html attribute
var $item1 = $('#item1').attr('data-generated', true);
// add as data
var $item2 = $('#item2').data('generated', true);
// create item, add data attribute via jquery
var $item3 = $('<div />', {id: 'item3', data: { generated: 'true' }, text: 'Item 3' });
$container.append($item3);
// create item, "manually" add data attribute
var $item4 = $('<div id="item4" data-generated="true">Item 4</div>');
$container.append($item4);
// only returns $item1 and $item4
var $result = $container.find('[data-generated="true"]');