Функция Jquery в другую функцию не возвращает все результаты - PullRequest
1 голос
/ 02 июня 2019

У меня есть функция jQuery, которая запускает другую функцию, но всегда возвращает последний результат.В чем проблема в моем коде?Спасибо.

function numbers(a, b) {
  res = '<div>' + a + ',' + b + '</div>';
}

function bloc1() {
  numbers(1, 2);
  numbers(3, 4);
  numbers(5, 6);
  $("#bloc1").append(res);
  // ouput : 5,6
  // but I want : 1,2 3,4 5,6
}

function bloc2() {
  numbers(10, 20);
  numbers(30, 40);
  $("#bloc2").append(res);
  // ouput : 30,40
  // but I want : 10,20 30,40
}

function bloc3() {
  numbers(500, 600);
  numbers(700, 800);
  $("#bloc3").append(res);
  // ouput : 700,800
  // but I want : 500,600 700,800   
}

bloc1();
bloc2();
bloc3();

1 Ответ

0 голосов
/ 02 июня 2019

Каждый раз, когда вы звоните по номерам, он перезаписывает res, а приложение получает последнюю версию res и печатает ее в формате html.

Проверьте эту скрипку, она должна ответить на ваш вопрос: https://jsfiddle.net/q4bjso0n/5/

Измените вашу numbers функцию, чтобы res возвращалось, а не просто устанавливалось.

function numbers(a, b) {
  res = '<div>' + a + ',' + b + '</div>';
  return res;
}

или лучше

function numbers(a, b) {
  return '<div>' + a + ',' + b + '</div>';
}

Теперь функция numbers возвращает значение res каждый раз, когда она вызывается.

Теперь вам нужно записать значения номеров функций в переменную и добавить значение THAT в html dom.

Вы можете решить эту проблему по-разному, например:

function bloc1() {
  //numbers(1, 2);
  //numbers(3, 4);
  //numbers(5, 6);
  $("#bloc1").append(""+numbers(1, 2)+numbers(3, 4)+numbers(5, 6));
  // ouput : 5,6
  // but I want : 1,2 3,4 5,6
}

или как это ...

function bloc1() {
  a = numbers(1, 2);
  b = numbers(3, 4);
  c = numbers(5, 6);
  $("#bloc1").append( ""+a+b+c);
  // ouput : 5,6
  // but I want : 1,2 3,4 5,6
}

или как это:

function bloc1() {
  myres = ""+numbers(1, 2)+ numbers(3, 4)+ numbers(5, 6);
  $("#bloc1").append(myres);
  // ouput : 5,6
  // but I want : 1,2 3,4 5,6
}

"res" живет в номерах функций. Вы должны проверить функции и область видимости переменной javascript.

...