2009-10-30 81 views
1

如何更新函数外的变量?例如,我有这样的:jquery变量外函数

 var max_index = 0; 

    //loop through the z-index's 
    $(".widget_container").each(function(){ 
     if($(this).attr("z-index") > max_index){ 
      max_index = $(this).attr("z-index") + 1; 
     } 
    }); 

    alert(max_index); 

与此唯一的问题是max_index总是提醒0。我怎么能更新max_index

回答

3

是的,你可以更新变量,它是从外closure访问,问题是z-index不是一个属性,它是一个CSS属性,你可以使用jQuery css功能得到它:

var max_index = 0; 

    //loop through the z-index's 
    $(".widget_container").each(function(){ 
     if($(this).css('zIndex') > max_index){ 
     max_index = +$(this).css('zIndex') + 1; 
     } 
    }); 

    alert(max_index); 

请注意,我在加入之前使用加号,也就是一元加运算,将其转换的zIndex值数目,因为此函数返回字符串,如果+操作的其中一个操作数是字符串,串联完成("0" + 1 = "01")。

另请注意,包含破折号的CSS属性(如background-colorfont-size)可以通过删除短划线和大写下一个单词来访问。

+0

感谢对不起我不是想笑。谢谢您的帮助 – ngreenwood6 2009-10-30 03:13:10

0

我觉得

$(this).attr("z-index") 

应该

$(this).css("z-index") 

这会返回一个字符串

用途:

parseInt($(this).css("z-index"))