【问题标题】:How to get some return back in jQuery Fn feature如何在 jQuery Fn 功能中获得一些回报
【发布时间】:2019-01-14 15:09:34
【问题描述】:

我正在使用 jQuery.fn 功能,我需要将一些值返回到脚本中。请帮助

根据下面的示例,我需要返回 't' 值,我希望将其分配给 'T'

$.fn.Hello = function() {     
  return this.each(function() {
    var t = "something";
    // my code
  };
}

// Binding
var T = $('ele').Hello(args);    
console.log(T);

【问题讨论】:

  • 你不能从each()处理函数返回任何东西。您返回的只是each() 本身的结果,与this 相同,即。首先调用Hello() 的jQuery 对象。
  • 你不应该做你想做的事情......不是真的,无论如何......你现在做的是正确的 - 返回匹配的元素,以便你可以链接它们。你想要做的事情的问题是你的返回值可能会失去它的意义,因为你没有很好的方法来匹配集合中的元素和返回值的一部分。你可能应该重新考虑你在做什么。你到底想达到什么目的?
  • 鉴于您正在循环,不清楚您期望返回的值是什么。

标签: javascript jquery jquery-plugins


【解决方案1】:

不是很清楚,'t'是什么类型的变量以及如何修改它,但你可以在each()之外声明并返回它:

$.fn.Hello = function() {
  var t;
  this.each(function() {
    t = "something";
    // your code
  };
  return t;
}

// Binding
var T = $('ele').Hello(args);    
console.log(T);

【讨论】:

  • 这不会像我预期的那样返回 t,谢谢 Mikhali
  • @Dhanan 那么你期待什么类型的返回值呢?
  • 嗨@LeroyStav,我需要根据情况取回一些值。 T 应该是一个对象。
  • @Dhanan 正如每个人都告诉你的那样,你应该解释你想要返回的内容。 “某个对象”意味着您正在返回 one 值,但您对“这不会像我预期的那样返回 t 以任何方式感谢 Mikhali”的回应暗示了其他情况。如果要返回一个数组,那么each中的var t = [];t.push('something');。如果您想要计数,那么each 中的var t = 0;t++; (这两个示例都修改了上面的答案)这里的解决方案完全取决于您想要实现的目标似乎拒绝告诉我们那是什么!
  • 大家好,我写这篇文章是为了解决复杂功能,所以我没有在这里粘贴所有代码。我认为知道它是一个对象还是一个数组并没有多大价值。无论如何,我仍然需要返回 $.fn 内的一些值,并且我需要再次返回该值。非常感谢
猜你喜欢
  • 1970-01-01
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
相关资源
最近更新 更多