данные json повторяются 2 раза

#jquery

#jquery

Вопрос:

 $(document).ready(function() {
       $("button").click(getir);
   });

    function getir() {
         $.ajax({
               dataType: "json",
               url:"get.php",
               success: function(datacall) {
                   $.each(datacall,function(index,vals) {
                       $("span").append(index   " : "   vals   "<br />");
                   });
               }
           });
    }
  

данные json являются {«sez»: «soze», «koz»: «koze»}
но я получаю результат, подобный:

 sez : soze
koz : koze
sez : soze
koz : koze
  

я не мог понять, почему это повторяется 2 раза?

Комментарии:

1. Есть ли два интервала на странице? jQuery добавлял бы текст к каждому интервалу.

2. как вы <html> и //server code выглядите?

3. @грег, ах, ты прав. на странице есть еще один интервал.

4. Чтобы добавить к комментарию @Greg, ваш выходной div должен иметь идентификатор и использовать селектор идентификаторов, а не выбирать все элементы span.

5. спасибо, Фоско, я присвоил идентификатор целевому диапазону, теперь он работает.

Ответ №1:

у вас случайно нет 2-х пролетов друг над другом?

ваша функция работает нормально: смотрите эту скрипку:

http://jsfiddle.net/G2ntr/

итак, либо ваши данные выглядят не так, как вы говорите, или у вас в вашем html больше одного интервала.

Ответ №2:

Если на странице более одного интервала, к каждому интервалу будет добавлен текст. Ограничьте работу jQuery только с одним диапазоном, указав более конкретный селектор, такой как идентификатор или класс.

Комментарии:

1. @markusmark — Я рад, что это было так просто. И добро пожаловать в Stackoverflow! Если мой ответ (или другой) отвечает на ваш вопрос, то, пожалуйста, отметьте его как правильный, щелкнув зеленую галочку. Я надеюсь, что вы останетесь здесь, это отличное сообщество.