JavaScript 的可见性检查不起作用

Visibility check with JavaScript doesn't work

我想检查名称为 "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 对象上的 shape_* 变量(如果它是全局定义的),所以你可以做类似 window['shape_' + counter] 的事情.

同样,您可以...但是您真的不应该那样编码。相反,您应该尝试使用以下值创建一个数组: var shapes = ['#first', '#second', '#third'];

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

记得

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

var counter = 7; 
var element = 'shape_' + counter;
if( $('#'+ element).is(':visible')){//my code}

//or you can use .length if it is visible in the DOM
if( $('#'+ element).length){//my code }