javascript - 使用 JavaScript 进行可见性检查不起作用

标签 javascript jquery variables if-statement visibility

我想检查名为“shape_7”的元素是否可见。当我执行以下 JavaScript 时,它工作正常:

var element = shape_7;

if( $(element).is(':visible') )
{
//my code
}

但是,如果我执行以下 JavaScript,它不起作用:

var counter = 7;
var element = 'shape_' + counter;

if( $(element).is(':visible') )
{
//my code
}

不幸的是,在我的情况下我需要第二种情况(数字作为变量)。如何纠正第二个代码才能正常工作?

提前非常感谢您的帮助!

最佳答案

如果 window 对象是全局定义的,您可以访问 window 对象上的 shape_* 变量,因此您可以执行类似 的操作窗口['shape_' + counter]

再说一次,你可以...但是你真的不应该那样编码。相反,您应该尝试使用以下值创建一个数组: var 形状 = ['#第一', '#第二', '#第三'];

然后您可以通过索引访问值:$(shapes[0]);

记住

window对象上设置属性使它们成为全局的,这意味着所有代码都可以获取和设置这些属性值。因此,它被认为是不好的做法,你应该尽量避免它。 Look into IIFE's

关于javascript - 使用 JavaScript 进行可见性检查不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42126286/

相关文章:

javascript - 更改在非 HTML5 浏览器中显示的 URL(无需重新加载页面)

javascript - js 中的 for 循环,带有 starter 函数

JavaScript 对象,找不到 'quantity'

javascript - 当我编写脚本时,它显示 ReferenceError : theWidth is not defined

jquery - 当悬停一个 div 时,其余部分会发生变化

objective-c - 何时何地从任意消息返回值初始化外部变量?

vba - 在 vba 中使用变体对性能不利吗?

javascript - Fancybox:无法固定高度和宽度

javascript - 异步: Why is form post redirecting?

javascript - 循环中多个相似的命名变量