jQuery的隐式循环是“两种方式”吗?

时间:2010-06-20 00:08:28

标签: javascript jquery

结果证明jQuery的“隐式循环”是双向的:

    <div class="classOne">
        some content
    </div>

    <div class="classOne">
        some content 2
    </div>  

[...]

$(function() { $('hello world').prependTo($('.classOne')); })

在这种情况下,循环将在$('.classOne')部分发生 - hello world将添加到两个Div。

我也试过

    <div class="classOne">
        some content
    </div>

    <div class="classOne">
        some content 2
    </div>  

    <div class="classTwo">
        <a href="http://www.google.com">hello Google</a>
    </div>

    <div class="classTwo">
        <a href="http://www.yahoo.com">hello Yahoo</a>
    </div>  

[...]

$(function() { $('.classTwo').prependTo($('.classOne')); })

并且会有“嵌套循环”...所以2个链接将被添加到两个Divs

所以我想如果我们有

$('.classOne').prepend($('.classTwo')).prepend($('.classThree'))

然后它会像3个嵌套循环?嵌套是否有规则,哪一个是内循环,哪一个是外循环?如果它是

,那么内循环/外循环是什么?
$('.classOne').prependTo($('.classTwo')).prependTo($('.classThree'))

1 个答案:

答案 0 :(得分:2)

.prependTo()的每个前任都会附加到传入in you can see the actual jQuery core code here的每个项目中。由于您将jQuery对象传递给.prependTo(),因此它将查看每个元素,并在链前前缀中添加每个对象的克隆版本。

所以每个.prependTo() =一个for循环(当传入jQuery对象时),但它们不是嵌套的。一个的结果只是传递给下一个,但它是一个获取元素的数组,你可以使用.end()返回前一个数组。

我道歉,如果这不是一个清晰的解释,我意识到这有点奇怪的想到链接...但如果你可以指出任何问题,这留下评论我会尝试更新,以解决任何混乱/我特意错过了部分。