【问题标题】:How to get a value from $.something{(...)}如何从 $.something{(...)} 中获取值
【发布时间】:2017-02-16 05:35:04
【问题描述】:

我有以下代码:

$.simpleWeather({
    location: coordinates,
    unit: 'c'
}

我想获得“单位”的值。我如何得到它?我试过这个:

console.log($.simpleWeather.unit);

但它返回“未定义”。

另外,因为我不知道怎么称呼它,我也不能简单地谷歌它......

【问题讨论】:

  • 贴出你的完整代码?coordinates指向的变量是什么?
  • 执行 console.log($.simpleWeather) 时会看到什么。输出可能会帮助您找到访问单元的方法
  • 你可以在那里使用一个额外的变量 - var params = {location: 'coordinates', unit: 'c'}; $.simpleWeather(参数); params.unit
  • 这完全取决于simpleWeather 插件的构建方式以及它允许​​您访问的方法和属性。但是,您没有理由不能将提供给 unit 的值存储在自己的变量中并在代码中需要的地方引用
  • 看看这个演示:codepen.io/fleeting/pen/xklfq 它会有所帮助:)

标签: javascript jquery


【解决方案1】:

这完全取决于simpleWeather 对您放入其中的对象做了什么。从表面上看,simpleWeather 是一个 jquery 扩展。您可以将它们视为一个接受参数的函数,并且可能(或可能不)返回一个 jquery 选择器。

如果 simpleWeather 返回一个 jquery 本身而不是一个裸 jquery 选择器(或者根本什么都没有),你可以这样做:

var sw = $.simpleWeather({
    location: coordinates,
    unit: 'c'
}

console.log(sw.unit);

您可能想尝试这样做,只是为了弄清楚 jquery 扩展的返回值中的实际内容。

var sw = $.simpleWeather({
    location: coordinates,
    unit: 'c'
}

console.log(sw);

如果无法从扩展的返回值中检索单位,您可能需要单独跟踪它。 如果有多个实例,您可以使用数组执行此操作,如下所示:

  var swInstances = [];

  ...
  var swParameters = {
     unit : 'c',
     location : coordinates,
  };

  swInstances.push({
     usedParameters : swParameters,
     simpleWeatherInstance : $.simpleWeather(swParameters)
  });

然后,您可以使用 swInstances 数组访问每个 simpleWeather 实例所需的所有信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 2018-03-30
    • 2016-08-27
    • 2013-06-16
    • 2013-08-03
    • 2021-07-22
    • 2012-07-24
    相关资源
    最近更新 更多