Icanhaz / moustache loop (iterate through elements) js error

J'essaie de faire fonctionner la boucle icanhaz / moustache, telle que définie dans cette réponse et je reçois une erreur suivante dans la console du navigateur:

Uncaught Error: Syntax error, unrecognized expression: <option value="1">First</option> <option value="2">Second</option> 

Je ne sais pas pourquoi. Je viens de constater que c'est la ligne qui cause le problème:

 ich.myTemplate(listOfStuff); 

C'est mon code entier:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/transitional.dtd"> <html> <head> <title>icanhaz.js demo</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script> <script type="text/javascript" src="https://raw.github.com/HenrikJoreteg/ICanHaz.js/master/ICanHaz.js"></script> </head> <body> <select id="mySelectBox"> </select> <script id="myTemplate" type="text/html"> {{#stuff}} <option value="{{key}}">{{desc}}</option> {{/stuff}} </script> <script> $(document).ready( function() { var listOfStuff = {stuff: [ {key: "1", desc: "First"}, {key: "2", desc: "Second"} ]}; var x = ich.myTemplate(listOfStuff); $("#mySelectBox").append(x); }); </script> </body> </html> 

Merci pour toutes les suggestions!

Enfin, j'ai trouvé l'erreur. C'était le problème de la version jquery – 1.9.1 renvoyait l'erreur et 1.8.3 n'était pas. Comparez ces démos:

Pour la version 1.9.1, regardez la console javascript.

De plus, si j'ai changé

 <script id="myTemplate" type="text/html"> {{#stuff}} <option value="{{key}}">{{desc}}</option> {{/stuff}} </script> 

à

 <script id="myTemplate" type="text/html"> {{#stuff}}<option value="{{key}}">{{desc}}</option>{{/stuff}} </script> 

Pour 1.9.1, il a également fonctionné correctement.


Edit: c'est un problème ouvert sur icanhaz / github . Si vous le souhaitez, aidez-vous à réparer ce bug!

 var listOfStuff = {stuff: [ {key: "1", desc: "First"}, {key: "2", desc: "Second"} ]}; var html = ich.myTemplate(listOfStuff); $("#mySelectBox").append($(html)); 

Essayez-vous cela?