迭代Jquery函数

时间:2014-08-23 10:54:59

标签: javascript jquery html css iteration

我做了:http://jsfiddle.net/ablueman/sfjL9kyr/并想把它应用到一个班级。所以我把每个DIV放进去,它会显示宽度和高度。

我开始尝试创建它,但我遇到了一堵砖墙:http://jsfiddle.net/ablueman/2uvpk2d5/

在第一个DIV中,它放入了2个工作div。 在第二个DIV中,它放入了2个非工作div组。 enter image description here

我已经尝试了所有我能想到的东西,但我确定它只是一个根本性的错误。请帮忙。

if ($('div').hasClass('change')) { 
    $('.change').each(function (iterate, val) {
    twoDivs = "<div id='changelog"+iterate+"'></div><div style='clear: right;'></div>";
    $('.change').append(twoDivs);      

     $("#changelog"+iterate).text(' W: ' + $('.change').width() + 'px , H:' + $('.change').height() + 'px ');
     $(window).resize(function() {
     $("#changelog"+iterate).text(' W: ' + $('.change').width() + 'px , H:' + $('.change').height() + 'px ');
     });
 });
}

安迪

2 个答案:

答案 0 :(得分:1)

是的,有一个小错误。你要做的是foreach div你试图附加一个页脚并注册更改事件。但是在附加页脚div和注册事件时,你指的是两个div而不是你正在迭代的那个。你只需要在变量中保存一个引用。

我已更新您的脚本。

    if ($('div').hasClass('change')) { 
    $('.change').each(function (iterate, val) {
        var self = $(this);
    twoDivs = "<div id='changelog"+iterate+"'></div><div style='clear: right;'></div>";
    self.append(twoDivs);      

     $("#changelog"+iterate).text(' W: ' + self.width() + 'px , H:' + self.height() + 'px ');

     $(window).resize(function() {
     $("#changelog"+iterate).text(' W: ' + self.width() + 'px , H:' + self.height() + 'px ');
     });

 });
}

以下是JSFiddle Link,其中包含更新的脚本。

答案 1 :(得分:0)

在查看代码后,在遍历每个函数的元素时会出现语法错误。这是您的更新代码。

if ($('div').hasClass('change')){ 
    $('.change').each(function(iterate){
        twoDivs = "<div id='changelog"+iterate+"'></div><div style='clear: right;'></div>";
        $('.change').append(twoDivs);      

        $("#changelog"+iterate).text(' W: ' + $('.change').width() + 'px , H:' + $('.change').height() + 'px ');
        $(window).resize(function() {
            $("#changelog"+iterate).text(' W: ' + $('.change').width() + 'px , H:' + $('.change').height() + 'px ');
        });
    });
}