Voici un exemple simple pour illustrer le comportement :
Compte tenu de ce balisage html :
<div data-company="Microsoft"></div>
et ce code jQuery (utilisant jQuery 1.5.1) :
// read the data
alert($("div").data("company"));
// returns Microsoft <<< OK!
// set the data
$("div").data("company","Apple");
alert($("div").data("company"));
// returns Apple <<< OK!
// attribute selector
alert($("div[data-company='Apple']").length);
// returns 0 <<< WHY???
// attribute selector again
alert($("div[data-company='Microsoft']").length);
// returns 1 <<< WHY???
// set the attribute directly
$("div").attr("data-company","Apple");
alert($("div[data-company='Apple']").length);
// now returns 1 <<< OK!
Puisque jQuery importe automatiquement les data-* HTML5 dans l'objet data de jQuery, les attributs ne devraient-ils pas être mis à jour également lorsque les données changent ?
1 votes
@James
"div[data-company='Apple'"
- vous avez oublié de fermer avec]