问题在于我不知道如何打破第一个数字的循环并再次开始下一个数字。目前,一个 span.nNumber 具有两个数字(123456)的总位数,下一个 span.nNumber 仅包含来自另一个数字的数字(456)。 目标是创建序列123和456:
标记:
<span class='nNumber'>
<span>1</span>
<span>2</span>
<span>3</span>
</span>
<span class='nNumber'>
<span>4</span>
<span>5</span>
<span>6</span>
</span>
JavaScript( example ):
$('div .number').each(function(){
var number = $(this).text();
var i = 0;
$(this).parent().prepend($("<span class='nNumber'></span>"));
while(i<number.length)
{
$(this).closest('span').hide();
var nChar = number.charAt(i);
i++;
$('.nNumber').append('<span class="digit-'+nChar+'">'+nChar.split(" ").join(", ")+'</span>');
}
});
答案 0 :(得分:1)
在while
循环中,使用以下内容;
$(this).parent().find('.nNumber').append('<span class="digit-'+nChar+'">'+nChar+'</span>');
这样,您将始终修改正在迭代的nNumber
内的div
类。如果您使用$(".nNumber")
,您将获得所有类别为nNumber
的元素,即使是当前div
以外的元素。这就是.each()
的第二次迭代将额外数字456
添加到第一个span
的原因。
<强> DEMO 强>