У меня возникли проблемы с возвратом результата JSON. Если результат соответствует некоторым требованиям, добавьте их в элемент <li>
. Да, я все еще учусь :)Loop через результат getJson
Полученный результат выглядит следующим образом: [text][text2][text3]bla,blabla, blabla
. Я хочу только захватить элементы между скобками. Впоследствии эти скобки необходимо удалить, а очищенный результат должен быть помещен в элемент <li>
.
Так что у меня есть это:
$.getJSON('some-url?format=json', function(e) {
var keywords = e.shop.keywords; //result = [text][text2][text3]bla,blabla, blabla
$(keywords).each(function(i, keys) {
var keys = keywords.match(/\[(.*?)\]/); //matches if text is between brackets
if (keys) {
var submatch = keys[1];
}
});
$('.some-div ul').html('<li>'+submatch+'</li>');
});
Делая это, как выше, дает мне ошибку Error: Syntax error, unrecognized expression: [text][text2][text3]
Что я делаю неправильно?
вы должны передать массив в '' каждой функции() ... –
'keywords' это строка, верно? Обертка строки в '$()' не автоматически преобразует ее в массив, и даже если бы это было так, синтаксис, который вы используете, был бы неправильным. См. API http://api.jquery.com/jquery.each/, как использовать '$ .each()' –
, если '[text] [text2] [text3] bla, blabla, blabla' - ваш JSON, это полностью испорчен/недействителен, и мне интересно, что ваш скрипт не выдал ошибку. * Редактировать: * Кажется, что это именно то, что вы получаете. ** исправить данные, возвращаемые сервером, чтобы быть действительными. JSON ** – Thomas