Pourquoi ne pas les changements de jQuery $.fn.de données() mise à jour le correspondant html 5 de données* les attributs?

Voici un exemple simple pour illustrer le comportement:

Compte tenu de ce balisage html:

<div data-company="Microsoft"></div>

et ce jQuery code (à l'aide de 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!

Depuis jQuery importe automatiquement le HTML5 données* en jQuery données de l'objet, ne pas les attributs être mis à jour lorsque les données changent?

  • "div[data-company='Apple'" - vous oublié de le fermer avec ]
InformationsquelleAutor James H | 2011-03-31