Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jquery json each (https://javascript.ru/forum/misc/46252-jquery-json-each.html)

kowapos 03.04.2014 06:12

jquery json each
 
вот
$.each(data,function(key,value){
     $.each(value, function(i, item) {
            document.write(item.country + '<br>');
      });
});

- выводит undefined

если выводить так

$.each(data,function(key,value){
     $.each(value, function(i, item) {
            document.write(i + ' - ' + item + '<br>');
     });
});


то красиво выводит ключ - значение. как быть?
вот json который приходит циклу

[
  {
      "0":"50.4333",
    "latitude":"50.4333",
    "1":"30.5167",
    "longitude":"30.5167",
    "2":"\u041a\u0438\u0435\u0432",
    "name_ru":"\u041a\u0438\u0435\u0432",
    "3":"\u0423\u043a\u0440\u0430\u0438\u043d\u0430",
    "country":"\u0423\u043a\u0440\u0430\u0438\u043d\u0430",
    "4":"Ukraine",
    "name_en":"Ukraine",
    "5":"8",
    "count":"8",
    "6":"49713",
    "id":"49713",
    "inc":1,
    "all":"8"
  },

{
  "0":"40.3953",
  "latitude":"40.3953",
  "1":"49.8822",
  "longitude":"49.8822",
  "2":"\u0411\u0430\u043a\u0443",
  "name_ru":"\u0411\u0430\u043a\u0443",
  "3":"\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d",
  "country":"\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d",
  "4":"Azerbaijan",
  "name_en":"Azerbaijan",
  "5":"1",
  "count":"1",
  "6":"25990",
  "id":"25990",
  "inc":2,
  "all":"1"
},

{
  "0":"55.7522",
  "latitude":"55.7522",
  "1":"37.6156",
  "longitude":"37.6156",
  "2":"\u041c\u043e\u0441\u043a\u0432\u0430",
  "name_ru":"\u041c\u043e\u0441\u043a\u0432\u0430",
  "3":"\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0430\u044f \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u044f",
  "country":"\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0430\u044f \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u044f",
  "4":"Russian Federation",
  "name_en":"Russian Federation",
  "5":"1",
  "count":"1",
  "6":"23541",
  "id":"23541",
  "inc":3,
  "all":"1"
}
]

danik.js 03.04.2014 08:45

Цитата:

Сообщение от kowapos
как быть?

Посмотреть внимательно и напрячь хотя бы одну извилину?

kowapos 03.04.2014 11:14

нахера понты такие. скажи просто, я посмотрю, запомню и все

kowapos 03.04.2014 11:19

если ты о не закрытой скобке, то в скрипте она у меня закрытая, все равно не пашет

danik.js 03.04.2014 14:41

Цитата:

Сообщение от kowapos
как быть?

Че жрать? Во что поссать?

Че за вопрос вобще? Напиши че тебе не нравится, че не понятно.

danik.js 03.04.2014 14:41

$.each() обходит элементы массива либо ключи объекта. Чем тебя это не устраивает?

kowapos 03.04.2014 15:34

Цитата:

Сообщение от danik.js (Сообщение 305840)
$.each() обходит элементы массива либо ключи объекта. Чем тебя это не устраивает?

да меня все устраивает, скажи только почему когда пишу это:


у меня получается вот это:


меня интересует только этот вопрос. я этот jquery второй день всего лишь практику

kowapos 03.04.2014 15:39

если ты не понял вопрос, то нахрена это было писать?
Цитата:

Сообщение от danik.js (Сообщение 305772)
Посмотреть внимательно и напрячь хотя бы одну извилину?

или написал, лишь бы написать? или ты так самоутверждаешься?

jsnb 03.04.2014 15:54

А открыть дебаггер и посмотреть чему равны переменные на каждой итерации религия что ли не позволяет? Нет у item свойства country, потому что item - это строка, значение свойств объекта.

kowapos 03.04.2014 16:08

Цитата:

Сообщение от jsnb (Сообщение 305866)
А открыть дебаггер и посмотреть чему равны переменные на каждой итерации религия что ли не позволяет?

все это круто, но лучше бы подсказали где в дэбагере посмотреть чему равны на каждой итерации цикла, а не остроумничать про религию и тп. вы когда начинали, то все на свете знали?

Цитата:

Сообщение от jsnb (Сообщение 305866)
Нет у item свойства country, потому что item - это строка, значение свойств объекта.

почему же в интернете есть полно подобных конструкций, которые работают?

jsnb 03.04.2014 16:30

Цитата:

Сообщение от kowapos (Сообщение 305873)
вы когда начинали, то все на свете знали?

Нет. Я и сейчас мало чего знаю. На этом сайте есть замечательный учебник по JS. Что мешает смотреть в него? Подозреваю то, что копипастить скрипты и наугад чего-то там менять, а потом жаловаться на форумах намного быстрее и проще.

Цитата:

Сообщение от kowapos (Сообщение 305873)
почему же в интернете есть полно подобных конструкций, которые работают?

Может потому что люди, которые их писали, хоть немного понимали что они делают? Я уже сказал в чем причина вывода undefined. Куда уж конкретнее то. Опять же что мешает просто вывести значение переменных куда-нибудь и посмотреть чему они равны?

kowapos 03.04.2014 16:44

Цитата:

Сообщение от jsnb (Сообщение 305879)
копипастить скрипты и наугад чего-то там менять

не на угад, я в полне был уверен что делаю


Цитата:

Сообщение от jsnb (Сообщение 305879)
Опять же что мешает просто вывести значение переменных куда-нибудь и посмотреть чему они равны?

i = ключи
item = значения

что еще вывести?

kowapos 03.04.2014 17:02

сделал без jquery, а не накопипастел как ты сказал
var DataCount = data.length;
          for(var i = 0; DataCount > i; i++){
            alert(data[i]['country']);
          }

kowapos 03.04.2014 17:04

но все равно хочется понять, как это решить с помощью метода $.each()

jsnb 03.04.2014 17:08

Цитата:

Сообщение от kowapos (Сообщение 305880)
i = ключи
item = значения

Ну так и в чем проблема то тогда, если есть в наличии ключи и значения. Выводи их как тебе надо.

Цитата:

Сообщение от kowapos (Сообщение 305884)
но все равно хочется понять, как это решить с помощью метода $.each()

Зачем перебирающий метод, если надо обращаться к конкретному свойству объекта?

danik.js 03.04.2014 20:16

Чет и вправду, не по себе как накинулись на чела)
Ну ошибся чел, опыта совсем нет, с кем не бывает.

Хотя ведь понимает как работает $.each и как обращаться к свойствам объекта - этого впринципе достаточно чтобы написать код правильно.


Часовой пояс GMT +3, время: 01:21.