问答详情
源自:6-9 jQuery遍历之add()方法

这里每次新加的p元素为何在li之前

$("button:last").click(function() {

         //把html结构'<p>新的p元素</p>'

         //加入到li的合集中,为了能够在页面上显示

         //需要再重新appendTo到指定的节点处

         //值得注意:整个结构位置都改变了

         $('li').add('<p>新的p元素</p>').appendTo($('.right'))

    })


提问者:百兽凯多00 2017-02-28 20:58

个回答

  • 星yee_爷
    2017-03-23 22:45:17

    突然明白了,盗用@C0EEC3F7BBAA大神的回答

    你第一次点击的时候取出.div里的三个li并加上新的p添加到div.right里,此时.right里有三个li一个p

    第二次点的时候你把三个li取出,此时.right里只剩一个p(暂且取名‘次新p’),你再用三个li加一个新p添加到.right中时是添加到次新p的下面,就造成了你所看到的现像,其实最下面的p和三个li才是新添加的,上面的是以前的


  • 星yee_爷
    2017-03-23 22:41:03

    是在之后添加的,但是当新添加一个p标签时,会移动到li标签上面去,虽然我也不知道为什么,只是试了一下http://img.mukewang.com/58d3de7900017eee03610444.jpghttp://img.mukewang.com/58d3de3900010ac703780484.jpg

  • 东北小慕
    2017-03-02 18:21:54

    html中的变化是这样的

    <li>list item 1</li>

    <li>list item 2</li>

    <li>list item 3</li>

    <p>新的p元素</p>


    变成

    <p>新的p元素</p>

    <li>list item 1</li>

    <li>list item 2</li>

    <li>list item 3</li>

    <p>新的p元素</p>

    也就是你剪切了li,而原来的p并没有剪切

    $('li').add('<p>新的p元素</p>').appendTo($('.right'))这句话是把li新添加一个p标签,然后再剪切到.right类中,这句话并没有选择原来的p标签,而是新增了一个p标签


  • 雨谷
    2017-02-28 21:39:02

    是在之后的 你可以打开控制台看结构