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();
)

它在警报框中显示“列表”。我希望上面的两个代码是相同的,所以它们应该显示相同的结果。你能解释一下为什么会发生这种差异吗?

谢谢你。

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 回答