2013-03-27 5 views
0

Я пытаюсь получить работу цикла icanhaz/усов, как определено в этом answer, и я получаю следующее сообщение об ошибке в консоли браузера:icanhaz/усов цикл (итерацию по элементам) JS ошибки

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

Дон Не знаю почему. Я только успел заметить, что это линия, которая вызывает проблему:

ich.myTemplate(listOfStuff); 

Это весь мой код:

<!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> 

Спасибо за любые предложения!

ответ

2

И, наконец, я нашел ошибку. Это была проблема с версией jquery - 1.9.1 возвращала ошибку, а 1.8.3 - нет. Сравните эти демки:

для версии 1.9.1, смотрите на консоли JavaScript.

Кроме того, если я изменил

<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> 

для 1.9.1, он также работал отлично.


редактировать: это открытая issue on icanhaz/github. Если вы хотите, пожалуйста, помогите исправить эту ошибку!

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

Попробуйте?

+0

Я предоставил весь код, который я выполняю. Он на 100% такой же, как в упомянутом примере, и он возвращает указанную ошибку. Я не знаю почему. – ducin

+0

, и что происходит с идентификатором, использующим синтаксис доллара, чтобы обернуть ваш html, прежде чем добавлять его? – calumbrodie

+0

Пожалуйста, смотрите мой ответ ниже. Посмотрите на эти ссылки и запустите их в своем браузере. Можете ли вы сказать мне, какую версию jquery вы используете с кодом выше? – ducin