首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery递增变量

使用jquery递增变量
EN

Stack Overflow用户
提问于 2012-07-05 13:55:25
回答 5查看 74.8K关注 0票数 9

我觉得这是一件很基本的事情,但我似乎找不到解决方案。我试图在加载IFRAME之后递增一个值。

代码如下所示:

代码语言:javascript
复制
var x=0;
$(document).ready(function() {
        $('#iframe-2').load(function() {
            var x=x+1;        
        });
        $('#iframe-3').load(function() {
            var x=x+1;    
        });
        $('#iframe-4').load(function() {
            var x=x+1;        
        });
        $('#iframe-5').load(function() {
            var x=x+1;        
        });
    });

我想要做的是给出一些加载的iframe,当iframe完成加载时,这些iframe会更新。当前输出代码如下:

代码语言:javascript
复制
<script language="javascript">
document.write(x + " Results");
</script>

提前感谢大家的帮助!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-06 07:36:08

我最终想出了一个非常简单的解决方案:

代码语言:javascript
复制
var x=0;

    $(document).ready(function() {

        $('#iframe-2').load(function() {
            $("#t2").css("display","inline");
            x++;
            document.getElementById("tabs-1").innerHTML=x + " Results";
        });

        $('#iframe-3').load(function() {
            $("#t3").css("display","inline");
            x++;
            document.getElementById("tabs-1").innerHTML=x + " Results";
        });

        $('#iframe-4').load(function() {
            $("#t4").css("display","inline");
            x++;
            document.getElementById("tabs-1").innerHTML=x + " Results";
        });
        $('#iframe-5').load(function() {
            $("#t5").css("display","inline");
            x++;
            document.getElementById("tabs-1").innerHTML=x + " Results";
        });
    });
票数 3
EN

Stack Overflow用户

发布于 2012-07-05 13:57:51

你应该改变

代码语言:javascript
复制
var x = x+1;

代码语言:javascript
复制
x = x+1

因为var关键字每次都会在您的每个load中创建一个新变量,所以全局变量x不会更新/递增。

票数 16
EN

Stack Overflow用户

发布于 2012-07-05 13:58:18

你在加载回调函数中声明局部变量,所以它不会增加全局x,你可以在dom就绪的回调函数中声明var x,并在加载回调函数中使用它。

代码语言:javascript
复制
$(document).ready(function() {
    var x = 0;
    $('#iframe-2').load(function() {
        x++;        
    });
    $('#iframe-3').load(function() {
        x++;
    });
    $('#iframe-4').load(function() {
        x++;  
    });
    $('#iframe-5').load(function() {
        x++;  
    });
});

编辑:之后,document.write(x + " Results");仍然不能工作,因为它在加载iframe之前执行。您需要异步执行检查。

这是。

代码语言:javascript
复制
$(document).ready(function() {
    var x = 0;
    $('iframe').load(function() {
        x++;        
    });
    var time_id = setInterval(function() {
      $('#count').text(x);
      if (x === $('iframe').length) {
        clearInterval(time_id);
      }
    }, 200);
});​

html:

代码语言:javascript
复制
<iframe  src="http://www.w3schools.com"></iframe>
<iframe  src="http://www.w3schools.com"></iframe>
<iframe  src="http://www.w3schools.com"></iframe>
<iframe  src="http://www.w3schools.com"></iframe>
<hr>
Loaded iframe count: <span id="count">0<span>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11338499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档