创建元素直到条件为真

时间:2015-09-03 17:20:58

标签: javascript jquery dom for-loop while-loop

我想在条件为真之前在另一个元素中创建元素。 我试过这段代码,但它没有用。

//  calculate span size and it's parent
var homeHeight = $(".home").height();
var homeWidth = $(".home").width();
var homeSize = (homeHeight + homeWidth) * 2;
var spanHeight = $(".back-animation span").height();
var spanWidth = $(".back-animation span").width();
var spanSize = (spanHeight + spanWidth) * 2;
// create span elements to fill it's parent.
var createSpan = function() {
    var span = document.createElement("span");
    while (spanSize <= homeSize) {
        $(".animation-hide-overflow").append(span);
        spanSize = spanSize + spanSize;
    }
};
createSpan();

注意:它与JQuery结合使用,我在控制台中没有收到任何错误。 注2:我尝试像底部一样循环,但它也没有工作。

for (spanSize; spanSize <= homeSize; spanSize = spanSize + spanSize) {
    $(".animation-hide-overflow").append(span);
}

修改 谢谢提,我忘了调用createSpan函数!现在它正在工作但它只创造一次跨度。任何解决方案?

jsfiddle以获得更好的演示: http://jsfiddle.net/pooria_h/vqmgmyj0/1/ (它应该继续创建span元素,直到它填满父元素。)

1 个答案:

答案 0 :(得分:0)

问题在于本节

// create span elements to fill it's parent.
var createSpan = function() {
    var span = document.createElement("span");
    while (spanSize <= homeSize) {
        $(".animation-hide-overflow").append(span);
        spanSize = spanSize + spanSize;
    }
}

如果你多加注意,你可以看到我在循环之外创建了 span变量,所以这就是:Loop正常工作并增加 spanSize 变量直到它等于 homeSize 变量,该变量在起点较大但是最大的问题是没有元素创建!在循环之前创建 span元素。 所以这是正确的方法:

// create span elements to fill it's parent.
var createSpan = function() {
    while (spanSize <= homeSize) {
        var span = document.createElement("span");
        $(".animation-hide-overflow").append(span);
        spanSize = spanSize + spanSize;
    }
}