我想检查一个名为" 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
}
不幸的是,在我的情况下我需要第二种情况(数字作为变量)。为了正常工作,如何纠正第二个代码?
非常感谢您提前寻求帮助!
答案 0 :(得分:1)
如果shape_*
对象是全局定义的,那么可访问window
个变量,因此您可以执行window['shape_' + counter]
之类的操作。
再次,你可以 ......但你真的不应该这样编码。相反,您应该尝试使用以下值创建数组:
var shapes = ['#first', '#second', '#third'];
然后您可以按索引访问值:$(shapes[0]);
<强>记住强>
在window
对象上设置属性使它们成为全局属性,这意味着所有代码都可以获取并设置这些属性值。因此,考虑到不好的做法,你应该尽量避免它。 Look into IIFE's
答案 1 :(得分:0)
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 }