|
spinastr,
куда поместить курсы и дату из полученного ответа определяется ключами самого объекта. А для этого имена ключей дают элементам на странице как имена классов. <span class="previous date"></span> - это составное имя класса, и к этому элементу можно обратиться по любому из имени класса (как селектору). Если же обращаться по двум именам, то их пишут через точку - previous.date. Полученный объект (курсы) обходят двумя циклами, в первом $.each(data, function(k, o) значением аргумента "k" будут первичные ключи объекта, то есть "current" и "previous", а аргумент "о" принимает объекты с датой и курсами валют. Второй цикл $.each(o, function(a, r) - обходит курсы и его аргументами будут: "a" - ключи "date", "USD", "EUR", а "r" будет иметь значения этих ключей, то есть даты и курсов. Метод $('.'+k+'.'+a) соединяя первичные ключи объекта со вторичными формирует селектор составного имени класса, и они будут равны: .current.date .current.USD .current.EUR .previous.date .previous.USD .previous.EUR и jQuery по этим селекторам выбирает элементы на странице. Я и показал в примере и таблицу, и параграфы, а можно было всю страницу заклеить элементами с классами, в которые jQ и поместит данные. .html() - метод который помещает сами данные плюс стрелки. .attr('title', function() { return $(this).hasClass('title') ? data[k].date : '' }) - этот метод добавит и дату в title значение элемента, если у элемента есть имя класса title. Поэтому у <span class="previous USD title"></span> будет подсказка с датой, а у <span class="previous EUR"></span> нет. Вот и вся работа на клиенте. Все до безобразия просто. А ошибки если есть, так с ними надо разбираться, хрен знает что у вас там творится. А гаданием ни кто заниматься не станет. |
эта ошибка говорит о том, что у вас где-то не закрыты скобки. Проверяйте, для каждой ли открытой скобки есть закрывающая.
Если вы пользуетесь каким-либо редактором (например notepade++), они обычно подсвечивают пары скобок. |
Цитата:
Вы у этой строки $.getJSON("http://h116641.s08.test-hf.su/", function(data) { его убрали, а из этой //}); нет, и тело функции не закрыто! Когда же вы изучать матчасть начнете. |
Это нужно поместить перед "</body>":
$(function(){ $.getJSON('http://h116641.s08.test-hf.su/',function(data){ $('[data-currency]').each(function(){ var currency=this.dataset.currency.toUpperCase(), type=this.dataset.currencryType.toLowerCase()||'current', prefix=this.dataset.currencryPrifex||''; if(!data[type] || !data[type][currency]) return; var item=data[type][currency], html=(prefix?prefix.trim()+' ':'')+item.value.toFixed(2)+' '+ '<b class="'+['down','up'][item.rate-1]+'">'+ ['▼','▲'][item.rate-1]+ '</b>'; $(this).html(html); }); }); }); Так можно вывести курсы: <div data-currency="usd" data-currency-type="current" data-currency-prefix="$">Тут будет курс доллара на сегодня</div> <div data-currency="usd" data-currency-type="previous" data-currency-prefix="$">Тут будет курс доллара на вчера</div> <div data-currency="eur" data-currency-type="current" data-currency-prefix="€">Тут будет курс евро на сегодня</div> <div data-currency="eur" data-currency-type="previous" data-currency-prefix="€">Тут будет курс евро на вчера</div> Доллар вчера стоил <span data-currency="usd" data-currency-type="previous"></span> рублей, а евро <span data-currency="eur" data-currency-type="previous"></span> Если я нигде не ошибся, то будет работать. |
Nexus,
зачем? Ему код простого автомата дали, а вы наворотили еще кучу, чтобы он вообще запутался? И зачем такие сложности городить? |
Я очень ценю всё что выше написано, это труд что бы мне объяснить.
Спасибо ВАМ, но как вы мне объясняете и я не понимаю! Так и я объясняю, что не понимаю... На той неделе сделали курс доллара, я немного что то запомнил, потом подумал про евро, прошло 5 дней и я уже забыл подробности js. Вы в этой среде обитаете и шарите в этом и вам кажется что и другие с лёгкостью поймут. У меня нету даже базового знания js Я методом народного тыка 5 лет учил HTML и CSS- мне ни кто не помогал, а когда говорили я не понимал. Так и тут я понял 37% Буду сейчас подставлять снова методом народного тыка и задовать вопросы в форум. До этого все скрипты были написано, спасибо за это и снова как неделю назад, осталось вывести из json в html и я не понимаю. Даже если и пойму, забуду через неделю. Почему нельзя сразу всё подсказать, можно казать 97% сделано, конечно не мной мне помогли, видите как мне тяжело даются оставшиеся 3 %? Например я разбираюсь в сочетании цветов и легко могу что то подобрать, а другой в этом не понимает. Лучше сразу подсказать чем учить и смотреть как человек мучается. |
Nexus,
поместил на тестовой странице пусто |
Цитата:
JS-код вы вставили, отлично, но что на счет вывода информации? Читайте то, что ниже этого: Цитата:
|
laimas, таки да, тут я затупил, тс не справился со столь "сложным" выводом информации...
|
Часовой пояс GMT +3, время: 02:48. |