0

次のようなhtmlファイルがあります。

<!DOCTYPE HTML">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>

<ul id="a">
    <li>list</li>
</ul>
<ul id="b"></ul>

<script type="text/JavaScript" src="js/1.3.2/jquery.min.js"></script>

</body>
</html>

このスクリプトをロードすると:

alert(
    jQuery('ul#a li')
    .parent()
    .clone(true)
    .find('li')
    .appendTo('#b')
    .end()
    .end()
    .text();
)

それは私に1つの空行を与えます。ただし、これを行うと:

alert(
    jQuery('ul#a li')
    .parent()
    .clone(true)
    .text();
)

アラートボックスに「リスト」が表示されます。上記の 2 つのコードは同じであると予想されるため、同じ結果が表示されるはずです。なぜ違いが生じたのか説明していただけますか?

ありがとうございました。

4

1 に答える 1

0

コードを少し変更しました

基本的に言えば、1 つの .end() から多数の要素があり、スタックからプッシュされた要素が多すぎます。

     alert(
        jQuery('#a li')
        .parent()
        .clone(true)
        .find('li')
        .appendTo('#b')
        .end() // If you remove this it will give you the text of the newly added element
        .text() //else it will give you the text of the element you cloned
    )

これを行うと、上と同じ結果が得られますが、終わりはありません (明らかに、どこにも追加されませんが、同じテキストです)。

    alert(
        jQuery('#a li')
        .parent()
        .clone(true)
        .text()
    )
于 2012-11-09T09:39:28.413 に答える