【问题标题】:Jquery function into another function does not return all the resultsjquery函数转换成另一个函数不返回所有结果
【发布时间】:2019-10-18 11:05:59
【问题描述】:

我有一个触发另一个函数的 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();

【问题讨论】:

    标签: jquery function append


    【解决方案1】:

    每次调用数字时,它都会覆盖 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 的值。

    您现在需要在变量中捕获函数编号的值并将该值附加到 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 变量范围。

    【讨论】:

    • 嗨。这是行不通的。在你的三个命题中,结果总是“未定义”....我不明白你的最后一句话:我应该怎么处理我的变量? “res”在全局变量中,我应该改变它吗?谢谢。
    • 我添加了一个小提琴,你也需要改变你的数字功能......不客气,如果它适合你,请接受我的回答。
    • 啊是的!...好的!它就像一个魅力!非常感谢您的小提琴和您的回答。
    • 不客气!我赞成你的问题,因为它说得很好。
    猜你喜欢
    • 1970-01-01
    • 2022-07-10
    • 2011-11-18
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2014-07-27
    相关资源
    最近更新 更多