繁体   English   中英

Javascript:将一个变量值替换为另一个变量对象

[英]Javascript: Substitute a variable value in another variable object

我有一个滚动插件,初始化后将滚动量存储在特定的id中。

我正在使用jQuery获取div的id并将其存储在可变的bid中。

var bid = $(this).parent().parent().find(".video_s").attr('id');

在控制台中,var bid返回元素ID。 (这正常工作)

由于滚动量存储在特定于DOM元素ID的对象中

var bpos = bid.scrollData.scrollPosition[0][0];

上面的代码不起作用

可变出价包含元素的ID。

如果我在控制台中键入elementID.scrollData.scrollPosition[0][0] ,它会完美返回滚动量。 其中elementID是水平容器的特定ID。

请任何人告诉我怎么了。

解决方案1: window[bid].scrollData.scrollPosition[0][0]

解决方案2: eval(bid).scrollData.scrollPosition[0][0]

注意:永远不要使用eval()。 eval()速度慢且存在安全风险

由于bid是仅包含element-id的字符串,但是您需要一个包含实际dom-element的jQuery Object,因此代码应为:

var bpos = $('#'+bid).scrollData.scrollPosition[0][0];

$('#'+bid)根据出价中存储的ID获取元素。

对于此插件,元素存储在全局变量中(顺便说一下,这是非常糟糕的编程风格),因此您可以使用以下内容访问它们:

window[bid].scrollData.scrollPosition[0][0];

我认为您应该存储位置而不是ID

var bid = $(this).parent().parent().find(".video_s").attr('id');
var bpos = $('#'+bid).scrollData.scrollPosition[0][0]

做这个:

$('#'+bid).scrollData.scrollposition[0][0];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM